所以我正试图让我的列表字典与元组列表相匹配。(希望这是有道理的(。我有一本字典,里面有列表作为值,我的值是每本书的个人分数,例如: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')}
依此类推每个人
像这样的东西,我希望成为输出。
您可以尝试这样的方法。基本上枚举dictionary值并使用它的索引来访问books数组。
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')]}