首页 > 解决方案 > Python - 将具有重复值的列表合并到字典中时出现问题

问题描述

当我的第一个列表具有重复值时,它会由于某种原因导致合并失败。

names = ['bob', 'bob', 'bob', 'bob']
id = ['15', '12', '19', '20']
rating = ['100', '90', '100', '80']

dictionary = dict(zip(names, zip(id, rating)))

print(dictionary)

将输出

{'bob': ('20', '80')}

但是,如果我只是将所有名称更改为唯一名称,它将按预期输出。

names = ['bob', 'sally', 'john', 'jill']
id = ['15', '12', '19', '20']
rating = ['100', '90', '100', '80']

dictionary = dict(zip(names, zip(id, rating)))

print(dictionary)

现在输出具有唯一名称的相同代码

{'bob': ('15', '100'), 'john': ('19', '100'), 'sally': ('12', '90'), 'jill': ('20', '80')}

有什么比“dict(zip(names, zip(id, rating)))”更好的方法,所以我可以随心所欲地重复“bob”?

标签: pythondictionary

解决方案


你可以试试这个:

a={}
b=[]
for n,i,r in zip(names,id,rating):
  a[n] = (i,r)
  b.append(a)

这将返回一个字典输出列表:

[{'bob': ('20', '80')},
 {'bob': ('20', '80')},
 {'bob': ('20', '80')},
 {'bob': ('20', '80')}]

推荐阅读