现在,我很难弄清楚如何获得以下输出
所需输出:
{'Bobby': [set(), set(), set(), {'movie_2'}, set(),{'movie_1'}],
'Carren': [set(), set(), {'movie_4'}, {'movie_2'}, set(), {'movie_1'}],
'Deric': [set(), {'movie_1'}, set(), {'movie_2'}, set(),{'movie_3'}],
'Alec': [set(), {'movie_1'}, {'movie_3'}, set(), set(), {'movie_4'}] }
我正在使用的词典:
d = {'movie_1': {('Bobby', 5), ('Carren', 5), ('Alec', 1), ('Deric', 1)},
'movie_2': {('Carren', 3), ('Deric', 3), ('Bobby', 3)},
'movie_3': {('Alec', 2), ('Deric', 5)},
'movie_4': {('Carren', 2), ('Alec', 5)} }
在每个值中,元组表示(person,position)。你知道吗
因此,对于字典d
,当您查看键'movie_1'
时,第一个值是('Bobby', 5)
。你知道吗
然后将键'movie_1'
放入列表的第5个索引中。你知道吗
我目前掌握的代码:
我创建了一个包含6个set()
项的列表,但我不完全确定从这里要做什么才能获得所需的输出。你知道吗
from collections import defaultdict
d = {
'movie_1': {('Bobby', 5), ('Carren', 5), ('Alec', 1), ('Deric', 1)},
'movie_2': {('Carren', 3), ('Deric', 3), ('Bobby', 3)},
'movie_3': {('Alec', 2), ('Deric', 5)},
'movie_4': {('Carren', 2), ('Alec', 5)},
}
def new_dict(d):
le_dict = defaultdict(set)
values = [set(), set(), set(), set(), set(), set()]
for key, value in d.items():
for person_score in value:
le_dict[person_score[0]].add(key)
return le_dict
我建议直接从输入数据计算最大索引,而不是硬编码。你知道吗
这里有一个表意字符链接:https://ideone.com/83v6MN
list的insert方法可以如下重写,以实现泛型。没有必要找到最大大小或硬编码它。你知道吗
结果是:
相关问题 更多 >
编程相关推荐