Проверьте значение многомерного dict (array_column) - PullRequest
0 голосов
/ 27 января 2019

У меня есть необходимость проверить, соответствует ли конкретное значение значению многомерного слова (указав ключ).

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

Я пришел из среды PHP и знаю, что естьфункция, которая делает это: array_column Есть что-то подобное и для Python?

Возможен ли выход, определяющий key1, чтобы проверить, соответствует ли значение:

[value1, value10]

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Вы можете извлечь все значения для ключа всех диктов:

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 в случаеключ отсутствует.

Доку:

0 голосов
/ 27 января 2019

Вы можете использовать понимание списка:

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'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...