Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:字典列表,如何获取列表中多个项的特定键的值?_Python_Dictionary_Key Value - Fatal编程技术网

Python:字典列表,如何获取列表中多个项的特定键的值?

Python:字典列表,如何获取列表中多个项的特定键的值?,python,dictionary,key-value,Python,Dictionary,Key Value,我有一个字典列表,如: dict_list = [{'key1': 'dict1_value1', 'key2': 'dict1_value2', 'key3': 'dict1_value3'}, {'key1': 'dict2_value1', 'key2': 'dict2_value2', 'key3': 'dict2_value3'}, {'key1': 'dict3_value1', 'key2': 'dict3_value2', 'key3': 'dict3_value3'}, {'k

我有一个字典列表,如:

dict_list = [{'key1': 'dict1_value1', 'key2': 'dict1_value2', 'key3': 'dict1_value3'},
{'key1': 'dict2_value1', 'key2': 'dict2_value2', 'key3': 'dict2_value3'},
{'key1': 'dict3_value1', 'key2': 'dict3_value2', 'key3': 'dict3_value3'},
{'key1': 'dict4_value1', 'key2': 'dict4_value2', 'key3': 'dict4_value3'},
{'key1': 'dict5_value1', 'key2': 'dict5_value2', 'key3': 'dict5_value3'}]
为第二个列表项获取“key3”的值如下所示:

dict_list[1]['key3']
dict2_value3
下面的代码还返回列表中的项目2:4:

dict_list[1:3]
如果我想从列表中获取多个项目的“key3”值,该怎么办。像

dict_list[1:3]['key3']

类似于我们在MATLAB中所做的操作。

[x['key3']表示dict\u列表[1:3]]

[dict_list[i]['key3'] for i in xrange(1,3)]


itemgetter不应该出现在这个列表中。第一个和第三个还可以。请记住,在Python3Why
get
?在OP的示例中,键始终存在,这意味着您可以安全地使用
x['key3']
。另外,使用
get
会在列表中插入不需要的
None
s,因此它不会解决任何问题。如果无法保证密钥的存在,则无论是
[x['key3']对于dict_列表中的x,还是
[x中的'key3']对于x,或者
[el对于dict_列表中的el(x.get('key3')[1:3]),如果el不是None,都可以解决此问题。@Bakuriu同意您的意见,但不会插入不需要的None,因为密钥的存在是真实的,
[operator.itemgetter('key3')(dict_list[i]) for i in range(1,3)]
map(operator.itemgetter('key3'), itertools.islice(dict_list, 1,3))
>>> [x.get('key3') for x in dict_list[1:3]]
['dict2_value3', 'dict3_value3']