如果我没有弄错的话,我的问题可能包括理解.
所以我有一本字典:
data = {
1: [2, 4],
2: [3],
3: [1, 2, 6],
4: [1, 3, 6],
6: [3, 4]
}
Run Code Online (Sandbox Code Playgroud)
我希望重新排列字典值(而不是键),以便在任何其他值中每次出现"键"时,当前键的值现在应该包含最初发生的值的"键".
例如,字典现在应该如下所示:
new_data = {
1: [3, 4],
2: [1, 3],
3: [2, 4, 6],
4: [1, 6],
6: [3, 4]
}
Run Code Online (Sandbox Code Playgroud)
我确定我必须使用另一个空字典来解决这个问题,我必须使用循环.我有一个起点,但效率不高:
for pk,pv in zip(data.keys(), data.values()):
#print(pk,pv)
for pvs in pv:
#print(pvs)
if pk == pvs:
new_data.setdefault(pk, [])
new_data[pk].append(pvs)
print(new_data)
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.在此先感谢:)
(使用Ubuntu 14.04 32位VM和Python 2.7)