Python 2.7:将具有重复值的2个列表放入字典中

如果我有2个列表:


fruits = ["apple","apple","oranges","watermelon","apple"]

val = ["a","b","c","d","e"]

val的每个索引对应于水果的索引


因此,如果我想要具有以下内容的字典:


dict

{

"apple" : ["a","b","e"],

"oranges": ["c"],

"watermelon": ["d"]

}

最简单的方法是什么?


蛊毒传说
浏览 210回答 2
2回答

白衣非少年

使用defaultdictwithlist工厂作为输出容器,并使用以下命令遍历两个列表zip:In [162]: out = collections.defaultdict(list)In [163]: for k, v in zip(fruits, val):     ...:     out[k].append(v)     ...:     In [164]: outOut[164]: defaultdict(list,            {'apple': ['a', 'b', 'e'], 'oranges': ['c'], 'watermelon': ['d']})In [165]: dict(out)Out[165]: {'apple': ['a', 'b', 'e'], 'oranges': ['c'], 'watermelon': ['d']}

隔江千里

您可以使用setdefault一个空列表初始化每个值,然后附加另一个列表中的值fruits = ["apple","apple","oranges","watermelon","apple"]val = ["a","b","c","d","e"]d={}for k, v in zip(fruits, val):    d.setdefault(k, []).append(v) print(d)# {'apple': ['a', 'b', 'e'], 'oranges': ['c'], 'watermelon': ['d']}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python