【发布时间】:2021-10-14 20:13:25
【问题描述】:
在 python 中,如果我有一个具有单个键值对的字典,并且如果我不知道键可能是什么,我该如何获取值?
(如果我有一个包含超过 1 个键值对的 dict,我如何在不知道任何键的情况下返回任何一个值?)
【问题讨论】:
标签: python dictionary
在 python 中,如果我有一个具有单个键值对的字典,并且如果我不知道键可能是什么,我该如何获取值?
(如果我有一个包含超过 1 个键值对的 dict,我如何在不知道任何键的情况下返回任何一个值?)
【问题讨论】:
标签: python dictionary
你只需要使用dict.values()。
这将返回一个包含字典所有值的列表,而无需指定任何键。
您可能还对以下内容感兴趣:
请注意,在 Python 3 中,返回的值实际上不是正确的列表,而是 view object。
【讨论】:
list()@Yunti 列出清单
dict.values()[0]
values(),然后转换为列表,然后取第一项...)真的没有别的办法了吗?
其他解决方案,使用popitem并解包:
d = {"unknow_key": "value"}
_, v = d.popitem()
assert v == "value"
【讨论】:
除了 Delgan 的出色回答,这里有一个 Python 3 示例,演示了如何使用视图对象:
在 Python 3 中,您可以在不知道/不使用键的情况下打印值,因此:
for item in my_dict:
print( list( item.values() )[0] )
cars = {'Toyota':['Camry','Turcel','Tundra','Tacoma'],'Ford':['Mustang','Capri','OrRepairDaily'],'Chev':['Malibu','Corvette']}
vals = list( cars.values() )
keyz = list( cars.keys() )
cnt = 0
for val in vals:
print('[_' + keyz[cnt] + '_]')
if len(val)>1:
for part in val:
print(part)
else:
print( val[0] )
cnt += 1
OUTPUT:
[_Toyota_]
Camry
Turcel
Tundra
Tacoma
[_Ford_]
Mustang
Capri
OrRepairDaily
[_Chev_]
Malibu
Corvette
该 Py3 文档再次引用:
https://docs.python.org/3.5/library/stdtypes.html#dict-views
【讨论】:
ValueError: need more than 1 value to unpack 错误。
另外两种方式:
>>> d = {'k': 'v'}
>>> next(iter(d.values()))
'v'
>>> v, = d.values()
>>> v
'v'
【讨论】:
另一种方法:使用 for/in 循环遍历字典,我们得到键值对的键,然后我们得到值的值。
>>>my_dict = {'a' : 25}
>>>for key in my_dict:
print(my_dict[key])
25
>>> my_other_dict = {'b': 33, 'c': 44}
>>> for key in my_other_dict:
print(my_other_dict[key])
33
44
【讨论】: