如果我在Python中有一个仅有一个键值对的字典,并且我不知道该键可能是什么,那么我如何获取该值?
(如果我有一个含有多个键值对的字典,但又不知道任何键,那么我如何返回其中任意一个值?)
如果我在Python中有一个仅有一个键值对的字典,并且我不知道该键可能是什么,那么我如何获取该值?
(如果我有一个含有多个键值对的字典,但又不知道任何键,那么我如何返回其中任意一个值?)
您只需使用 dict.values()
。
这将返回一个包含字典中所有值的列表,无需指定任何键。
您还可能会对以下内容感兴趣:
请注意,在Python 3中,返回的值实际上不是真正的列表,而是视图对象。
另一种解决方案是使用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/zh-cn/3.5/library/stdtypes.html#dict-views
还有两种方法:
>>> 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
list()
将其转换为列表。@Yunti - Aftnixdict.values()[0]
。 - Dhruv Ghulativalues()
,然后转换为列表,然后取第一个项目...)难道真的没有其他方法吗? - Yuval A.