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']