检查多维字典的值(array_column)

时间:2019-01-27 19:41:33

标签: python multidimensional-array

我有必要检查特定值是否对应于多维dict(指定键)的值。

multi_dict = [
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'},
{'key1': 'value10', 'key2': 'value20', 'key3': 'value30'}
]

我来自一个PHP环境,我知道有一个函数可以做到这一点:array_column Python也有类似的东西吗?

可能的输出指定key1以便检查值是否对应:

[value1, value10]

2 个答案:

答案 0 :(得分:2)

您可以使用列表理解:

multi_dict = [
    {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'},
    {'key1': 'value10', 'key2': 'value20', 'key3': 'value30'}
]

result = [d['key1'] for d in multi_dict]
print(result)

输出:

['value1', 'value10']

如果要模拟索引键array_column的第三个参数,则可以使用字典理解:

result = {d['key1']: d['key2'] for d in multi_dict}
print(result)

输出:

{'value1': 'value2', 'value10': 'value20'}

答案 1 :(得分:1)

您可以提取所有字典键的所有值:

multi_dict = [ {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'},
               {'key1': 'value10', 'key2': 'value20', 'key3': 'value30'},
               {                   'key2': 'value30', 'key3': 'value40'},
             ]

val_key1 = [d.get('key1') for d in multi_dict] 

print(val_key1)  

输出:

['value1', 'value10', None]

万一密钥丢失,您应该使用dict.get(key)来获取None

Doku: