[英]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.