如何在Python字典中遍历获取每个键下所有元素的索引5值
问题:遍历Python字典提取指定位置的值
现有Python字典数据:
mydict = { 'K93': [((1200, 1, 'K93', 'AMK2FJVGB', 0.0, 600.0, 300), [300, 15]), ((1200, 1, 'K93', 'AMK2FJSRM', 0.0, 600.0, 300), [300, 15]), ((1200, 2, 'K93', 'AMK2FJVGB', 0.0, 600.0, 300), [300, 15]), ((1200, 3, 'K93', 'AMK2FJABK', 0.125, 800.0, 400), [300, 15]), ((1200, 2, 'K93', 'AMK2FJJBM', 0.6666666666666666, 900.0, 600), [300, 15]), ((1200, 3, 'K93', 'AMK2FJJBM', 0.6666666666666666, 900.0, 600), [300, 15]), ((1200, 1, 'K93', 'AMK2FJNBK', 0.0, 800.0, 400), [300.0, 15])], 'K0JA': [((1200, 1, 'K0JA', 'AMK0JA ', 0.6, 700.0, 400), [600, 30]), ((1200, 3, 'K0JA', 'AMK0JA ', 0.0, 700.0, 400), [300, 15])], }
需求:获取每个键对应列表中每个元素内元组的索引5位置的值,预期输出示例:
600 600 600 800 900 900 800 700 700
当前使用的代码仅能获取每个键下第一个元素的目标值:
for key,val in mydict.items(): print(mydict[key][0][5])
请问如何修改代码实现需求?
解决方案
需要在遍历字典键值对的基础上,嵌套一层循环遍历每个键对应列表中的所有元素,再提取目标位置的值。
修改后的打印版代码
for key, val in mydict.items(): # 遍历当前键对应的列表里的每一个元素 for item in val: # item是(目标元组, 子列表)结构,取第一个元素的索引5值 print(item[0][5])
代码说明
- 外层循环
for key, val in mydict.items():遍历字典的每个键和对应的列表值; - 内层循环
for item in val:遍历列表中的每一个元素; item[0][5]:先取出元素中的目标元组,再取该元组索引5位置的值并打印。
若需收集结果到列表(非直接打印)
可以用列表推导式简化:
result = [item[0][5] for val in mydict.values() for item in val] print(result)
输出结果:
[600.0, 600.0, 600.0, 800.0, 900.0, 900.0, 800.0, 700.0, 700.0]
内容的提问来源于stack exchange,提问作者coder_noob
相关产品推荐
相关产品推荐

