假设我有两个列表:
lista = ['winter', 'fall', 'spring', 'summer', 'winter', 'spring']
listb = ['cold', 'rainy', 'windy', 'hot', 'chilly', 'wet']
我想创建一个dictionary,从lista中提取唯一值作为键(它将自动执行,因为dictionary只能有唯一键),从list b中提取值作为dictionary值,按顺序与lista对应。因此,要创建词典,我要做:
mydict = {k: v for k, v in zip(lista, listb)}
如果我打印这个,我会得到:
{'winter': 'chilly', 'fall': 'rainy', 'spring': 'wet', 'summer': 'hot'}
然而,我想做的是,对于lista中的每一个重复的“键”,我想把listb中的值串联起来,作为字典中的“值”作为一个列表。所以目标是:
{'winter': ['cold', 'chilly'], 'fall': ['rainy'], 'spring': ['windy', 'wet'], 'summer': ['hot']}
这是我试图做的一个简化版本,但我认为它适用于-我正在读取一个csv文件,并试图使“姓氏”列的关键,并每隔一行的值(作为一个列表)。到目前为止,我已经为姓氏和其他行创建了一个列表,但是我需要连接重复名称的值。你知道吗
无需使用空列表显式初始化值,请使用^{} :
注意,没有必要像我那样强制转换到
dict
,因为defaultdict
是dict
的子类。我只是这样做的输出将符合您的要求完全。你知道吗结果:
这个怎么样?你知道吗
相关问题 更多 >
编程相关推荐