Python使用dict中的其他互值更新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, 6, 4, 7, 12, 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)

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

相关内容

  • 没有找到相关文章

最新更新