从此元组字典中检索值
Retrieving value from this dictionary of tuples
我有一个看起来像这样的字典元组;
names_dict = {0: ('CV', '4'), 1: ('PR', '8'), 2: ('SC', '2'), 3: ('SR', '3'), 4: ('SP', '7'), 5: ('Temperature', '1')}
接下来我有这个变量告诉我要检索什么;
name = 'Temperature'
我有这个函数 retrieve_value(names_dict , name)
这样当名字是 'Temperature'
时,函数 returns 1. 如果名字是 'SP'
,函数 returns 7.
python中的功能如何实现?我正在使用 python 2.7.9
这样试试:
>>> next((value[1] for value in names_dict.values() if value[0]==name), None)
'1'
创建函数:
>>> def my_function(my_dict, name):
... return next((value[1] for value in my_dict.values() if value[0]==name), None)
...
>>> my_function(names_dict, 'Temperature')
'1'
>>> my_function(names_dict, 'SP')
'7'
您可以编写一个列表理解并检索第一个元素:
>>> next(value[1] for value in names_dict.itervalues() if value[0] == 'CV')
'4'
如果找不到您提供的密钥,将引发 StopIteration
,但如果您愿意,可以添加默认值:
>>> next((value[1] for value in names_dict.itervalues() if value[0] == 'XXX'), None)
>>>
您可以使用 dict.values
遍历您的字典的 值 ,其中 returns 一个包含您的字典值的列表,就像@Hackaholic 回答的那样。
如果 dict 太大,dict.values
可能效率低下,请改用 dict.itervalues
,returns 一个 iterator你的字典的值而不是 list
在python3中,情况发生了变化。 dict.values
returns 一个迭代器,但不再是一个列表。
我有一个看起来像这样的字典元组;
names_dict = {0: ('CV', '4'), 1: ('PR', '8'), 2: ('SC', '2'), 3: ('SR', '3'), 4: ('SP', '7'), 5: ('Temperature', '1')}
接下来我有这个变量告诉我要检索什么;
name = 'Temperature'
我有这个函数 retrieve_value(names_dict , name)
这样当名字是 'Temperature'
时,函数 returns 1. 如果名字是 'SP'
,函数 returns 7.
python中的功能如何实现?我正在使用 python 2.7.9
这样试试:
>>> next((value[1] for value in names_dict.values() if value[0]==name), None)
'1'
创建函数:
>>> def my_function(my_dict, name):
... return next((value[1] for value in my_dict.values() if value[0]==name), None)
...
>>> my_function(names_dict, 'Temperature')
'1'
>>> my_function(names_dict, 'SP')
'7'
您可以编写一个列表理解并检索第一个元素:
>>> next(value[1] for value in names_dict.itervalues() if value[0] == 'CV')
'4'
如果找不到您提供的密钥,将引发 StopIteration
,但如果您愿意,可以添加默认值:
>>> next((value[1] for value in names_dict.itervalues() if value[0] == 'XXX'), None)
>>>
您可以使用 dict.values
遍历您的字典的 值 ,其中 returns 一个包含您的字典值的列表,就像@Hackaholic 回答的那样。
如果 dict 太大,dict.values
可能效率低下,请改用 dict.itervalues
,returns 一个 iterator你的字典的值而不是 list
在python3中,情况发生了变化。 dict.values
returns 一个迭代器,但不再是一个列表。