python 迭代中的元素

python iterating the element in

 dict = {46:  [{'picker_name': 'Table_1', 'picker_id': 970}], 
    47:  [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}]}

我想访问 每个键中唯一的 picker_id 这个问题的答案:- 46 : 970, 47 : 994, 999 我也尝试过但我没有得到正确的逻辑请帮助我我被困了很长时间。我是 python

的新手

这些是我的逻辑:-

for key in dict:
    for i in range(len(dict[key])):
        for it in dict[key][i].values():
            print(it)

我得到的输出是:-

Table_1
970
Table_7
994
Table_9
999 

两次迭代就可以了,你不需要使用range()

d = {46:  [{'picker_name': 'Table_1', 'picker_id': 970}], 
47:  [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}]}

for k, v in d.items():
    for d in v:
        print(k, d['picker_id'])

输出

46 970
47 994
47 999

另一个使用地图的解决方案

d = {46:  [{'picker_name': 'Table_1', 'picker_id': 970}],
     47:  [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}]}

res = {}
for key, pickers in d.items():
    res[key] = list(map(lambda picker: picker['picker_id'], pickers))
print(res) #{46: [970], 47: [994, 999]}

我会尽力把概念弄清楚。 首先,使用 .items() returns 字典视图对象在字典中循环,该对象提供字典元素的动态视图作为键值对列表。

dict_items([(46, [{'picker_name': 'Table_1', 'picker_id': 970}]), (47, [{'picker_name': 'Table_7', 'picker_id': 994}, {'picker_name': 'Table_9', 'picker_id': 999}])])

在下面的循环中,key 将保存第一个值,即 46,value 将保存第二个项目,即列表。

现在运行值列表中的循环。元素代表列表中的每个元素。由于列表的每个元素都是一个字典,您可以使用键 'picked_id'.

访问 'picked_id' 的值
for key,value in dict.items():
    for elements in value:
        print(key,elements['picker_id'])

希望对您有所帮助!祝一切顺利!祝学习顺利 Python.

输出:

46 970
47 994
47 999