繁体   English   中英

python - 如何遍历 dict 的值

[英]python - how to iterate through values of dict

我有一个要遍历的字典以查找包含该键的所有值。 我的 output 将是一个单独的 dict,它将包含每个 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']}

所以 output 会是这样的:

 {'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)

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

如果使用整数而不是字符串,我可以向您展示一种方法,作为初学者,您希望可以理解:

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。无论如何,不要认为这是一个完整的答案。

暂无
暂无

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

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