python - 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”?
解决方案
你可以试试这个:
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')}]
推荐阅读
- python-3.x - bs4 只获得前 15 个值
- android - Android 应用程序图标未在某些设备中显示
- laravel - 如何在流明中异步调用队列推送功能?
- typescript - 如何将带有 Map 的对象转换为 JSON 对象
- javascript - Google Charts 生成的二维码问题
- canoe - 将外部传感器连接到 CANoe
- sql - 删除 Teradata sql 中第 n 个下划线后的所有字符
- android - 如何实现像Uber Eats Food Menu滚动这样的滚动功能
- android - Playstore 提示“声明敏感权限”
- android - AndroidManifest.xml 不存在或 React Native 的根标签不正确