首页 > 解决方案 > 如何仅在 OrderedDict 中的每个键中提取第二个值元素?

问题描述

所以,我有这段代码,我只想在 OrderedDict 中的每个键中提取第二个值元素,我不想使用 for 循环,对此有什么想法吗?

from collections import OrderedDict

regDict= OrderedDict()
regDict["glenn"] = (100,200)
regDict["elena"] = (10,20)
print("values",list(regDict.values())[0][1])
print("values",list(regDict.values())[1][1])

印刷:

values 200
values 20

目标输出:

values 200,20    # or values ( 200,20 )

标签: pythonordereddict

解决方案


要在不使用显式循环的情况下做到这一点(我会说只是放入for列表理解语法仍然使用 for 循环),您可以使用map仅将第二个值作为列表返回,然后将这些值与','.join()for打印出来:

>>> ','.join(map(lambda x: str(x[1]), regDict.values()))
'200,20'

该调用使用 lambda 函数为每个原始值map返回第二个值 ( ):[1]

>>> list(map(lambda x: str(x[1]), regDict.values()))
['200', '20']

将此列表作为参数调用','.join()会为您提供一个串联的字符串,每个值用 . 分隔,


推荐阅读