我有这两个字典,一个代表人们的I和他们朋友的I:
FOFDict = {0 : [1, 2, 3],
1 : [2, 3, 4],
2 : [0, 1, 3, 4],
3 : [0, 1, 2, 5],
4 : [1, 2, 6, 7],
5 : [8, 3],
6 : [9, 4, 7],
7 : [9, 4, 6],
8 : [5],
9 : [6, 7]}另一个是根据共同兴趣(在前面的代码中找到)显示他们应该成为好友的in:
InterestFriendsDict = {0 : ([1, 5, 8, 9], ['C', 'Java','Data','Rainbows']),
1 : ([0], ['C']),
2 : ([3, 5], ['Python']),
3 : ([2, 4, 5, 6], ['Python','ramen','R','stats','prob']),
4 : ([3, 7], ['ramen','AI']),
5 : ([0, 2, 3, 8], ['Java', 'Python', 'R']),
6 : ([3], ['stats', 'prob']),
7 : ([4, 8], ['AI', 'anatomy']),
8 : ([0, 7, 9], ['Data', 'anatomy']),
9 : ([0, 5, 8], ['Java', 'Data', 'Rainbows'])}我现在必须以一种方式组合这些字典,以显示关键id,然后是他们的朋友的朋友和他们应该成为朋友的朋友,然后是他们所有人的共同兴趣。例如,id 0和1的条目为:
{0: ([1, 2, 3, 5, 8, 9], ['C', 'Java', 'Data', 'Rainbows'],
{1: ([0, 2, 3, 4], ['C']),
...我正在努力确定从哪里开始。我认为我可以只使用.update或类似的东西,但我不确定,因为一个字典有一个元组,而另一个没有。如果你可以帮助它,请不要使用像defaultdict这样的东西来回复,我是一个学生,我正在努力学习如何尽可能地像香草一样做这件事。谢谢!
发布于 2019-02-28 05:06:16
尝试将问题分解成小块,然后将它们粘合在一起。这里有一个解决你的问题的简单方法:
new_dict = {}
# iterate over dictionary by calling items()
for key, val in InterestFriendsDict.items():
# unpack the tuple you have with 2 variables just like the size of the tuple
id_tup, interests = val
new_dict[key] = (list(set(FOFDict[key] + id_tup)), interests)因此,有几件事需要注意,set具有唯一的值,因此它可以快速处理重复。然后将其转换回list,并与兴趣一起放入元组中。
https://stackoverflow.com/questions/54914281
复制相似问题