小编use*_*819的帖子

Python字典:根据其他值中的键出现替换值

如果我没有弄错的话,我的问题可能包括理解.
所以我有一本字典:

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)

python dictionary

1
推荐指数
1
解决办法
549
查看次数

标签 统计

dictionary ×1

python ×1