我有必要检查特定值是否对应于多维dict(指定键)的值。
multi_dict = [
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'},
{'key1': 'value10', 'key2': 'value20', 'key3': 'value30'}
]
我来自一个PHP环境,我知道有一个函数可以做到这一点:array_column Python也有类似的东西吗?
可能的输出指定key1以便检查值是否对应:
[value1, value10]
答案 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: