繁体   English   中英

Python 用 dict 中的其他互值更新 dict 的值

[英]Python Update values of dict with other mutual values in dict

我试图找到不在当前值中但键在其他值中的互数我有一个字典,我需要用键在另一个键的值中的值替换当前值。 所以我的字典是这样的:

dict_in =  {'1': [3, 5, 8, 9, 10, 12], 
            '4': [2, 5, 7, 8, 9], 
            '2': [3, 4, 7, 6, 13], 
            '12': [1, 7, 5, 9], 
            '3': [9, 11, 10, 1, 2, 13], 
            '10': [1, 3, 6, 11], 
            '5': [4, 1, 7, 11, 12], 
            '13': [2, 3], 
            '8': [1, 6, 4, 11], 
            '7': [5, 2, 4, 9, 12], 
            '11': [3, 5, 10, 8], 
            '9': [12, 1, 3, 6, 4, 7]}

我期待的是这样的 1: [7, 11, 10, 2, 13, 6, 11, 4, 7, 11, 12, 6, 4, 11, 12, 6, 4, 7],因为 1是 12,3,10,5,8 和 9 的值,所以我希望这些键的所有值现在都是 1 而不是 [3,5,8,9,10,12] 的值。 希望我没有让任何人感到困惑。

我的代码在这里:

dict_out = {}
for key in dict_in: 
   for k,v in dict_in.items():     
       for y in v:  
          if int(key) in v and y != int(key):
              dict_out.setdefault(int(key), []).append(y)

我得到的是数字1:

1: [7, 5, 9, 9, 11, 10, 2, 13, 3, 6, 11, 4, 7, 11, 12, 6, 4, 11, 12, 3, 6, 4, 7] 

所以它不应该包含 3、5、9 或 12。

所以我想要来自另一组值的所有值,如果这些值的键是另一组值,但我不希望我的当前值作为键。 在某个地方,我没有根据“潜在”值检查当前值。

好吧,这可能不是最优化的解决方案,但它对您的代码有好处:

dict_in =  {'1': [3, 5, 8, 9, 10, 12], 
            '4': [2, 5, 7, 8, 9], 
            '2': [3, 4, 7, 6, 13], 
            '12': [1, 7, 5, 9], 
            '3': [9, 11, 10, 1, 2, 13], 
            '10': [1, 3, 6, 11], 
            '5': [4, 1, 7, 11, 12], 
            '13': [2, 3], 
            '8': [1, 6, 4, 11], 
            '7': [5, 2, 4, 9, 12], 
            '11': [3, 5, 10, 8], 
            '9': [12, 1, 3, 6, 4, 7]}

dict_out = {}
for key in dict_in: 
   for k,v in dict_in.items():     
       for y in v:  
          if (int(key) in v) and (y != int(key)) and (y not in dict_in[key]):
              dict_out.setdefault(int(key), []).append(y)

print(dict_out)

我添加了另一个条件,它应该使它工作:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM