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
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