python - 如何遍历字典的值

python - how to iterate through values of dict

我有一个字典,我想遍历以查找包含该键的所有值。我的输出将是一个单独的字典,其中包含每个字典值中的数字,而没有值中的键或最终

中的每个特定键值
dict_in =   
   {'6': ['2,9,8,10'], '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']}

所以输出是这样的:

 {'6':['3,4,7,13,1,3,11,1,4,11,12,1,3,4,7'] , '4':['3,4,6,13,1,11,12,1,6,11,12,12,1,3,6'],'13': ['4,7,6,9,11,10,1']}

我是初学者,不知道从何入手。将其转换为列表列表会更容易吗?

现在明白你的意思了,所以刚刚创建了一些可以涵盖大部分内容的内容。改成你想要的。

dict_in = {'6': ['2,9,8,10'], '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, values in dict_in.items():
    for item in values:
        if True:#your condition
            if key in dict_out.keys():
                dict_out[key].append(item)
            else:
                dict_out[key] = [item]

print(dict_out)

关于您的问题,有一件事是额外的挑战。那是你或其他好心人要解决的问题。这只是向您的方向轻推。您的键值实际上是一个字符串。现在如果它是实际的整数,问题就不会太复杂。另请注意,您根据您的要求编写的预期输出实际上输入错误,您错过了一些值。

在使用整数而不是字符串的情况下,我可以向您展示一种方法,作为初学者您有望理解:

dict_in = {'6': [2,9,8,10], '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:
    if key == "6" or key == "4" or key == "13":
        for k,v in dict_in.items():
            for y in v:
                if int(key) in v and y != int(key):
                    dict_out.setdefault(key, []).append(y)


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

最后一点,我完全不知道为什么你想要唯一剩下的键是 6,4 和 13。 无论如何,不​​要将此视为完整答案。