python - 列表字典和元组列表比较
问题描述
所以我试图让我的列表字典与我的元组列表相匹配。(希望这是有道理的)。我有一本以列表为值的字典,我的值是每本书的单独分数,例如:bob 上的值 5 将等于书单中的第一本书,:
d = {'bob':[5,0,0,1,3], 'toms':[3,0,5,3,0], 'sammy': [0,0,0,1,0], 'ted':[5,0,0,6,3]}
和元组列表:
books=[('Douglas Adams', "The Hitchhiker"), ('Richard Adams', 'Watership'), ('Mitch Albom', 'The Five People'), ('Laurie Anderson', 'Speak'), ('Maya Angelou', 'Caged Bird Sings')]
所以我想要的是能够以某种方式说出当某人的价值为 3 或 6 时,我可以将他们拉出来说出哪些书有这些评级。谢谢!
编辑:我希望它输出某种字典,它会说:
selectScores = {bob: ('Maya Angelou', 'Caged Bird Sings'), toms: (Maya Angelou', 'Caged Bird Sings', Laurie Anderson', 'Speak')}
依此类推每个人
类似的东西我希望成为输出。
解决方案
你可以尝试这样的事情。基本上枚举字典值并使用它的索引来访问书籍数组。
d = {'bob':[5,0,0,1,3], 'toms':[3,0,5,3,0], 'sammy': [0,0,0,1,0], 'ted':[5,0,0,6,3]}
books=[('Douglas Adams', "The Hitchhiker"), ('Richard Adams', 'Watership'), ('Mitch Albom', 'The Five People'), ('Laurie Anderson', 'Speak'), ('Maya Angelou', 'Caged Bird Sings')]
select_scores = {}
for key, books_scores in d.items():
for i, score in enumerate(books_scores):
if score == 3 or score == 6:
if key not in select_scores:
select_scores[key] = []
select_scores[key].append(books[i])
print(select_scores)
输出:
{'bob': [('Maya Angelou', 'Caged Bird Sings')], 'toms': [('Douglas Adams', 'The Hitchhiker'), ('Laurie Anderson', 'Speak')], 'ted': [('Laurie Anderson', 'Speak'), ('Maya Angelou', 'Caged Bird Sings')]}
推荐阅读
- android - 如何在 Firebase 中添加列
- sql - 为什么我的触发器在我的 Oracle 数据库上不起作用?
- node.js - IBM Cloud Functions:如何在 NodeJS 中要求“node-geocoder”
- html - 如何从日期选择器中提取日历?
- reactjs - 如何在单击复选框reactjs时将一个输入框复制到另一个
- authentication - Identity Server 4 日志(无效的对象名称“DeviceCodes”)异常
- c# - IModelValidator 依赖注入
- mysql - GROUP_CONTACT 值用作其他列的条件
- python - 烧瓶用户@login_required 和@roles_required 不起作用
- r - 数据表生成逻辑向量的错误调试