Python: liste de dictionnaires, de façon à obtenir des valeurs d'une clé spécifique pour plusieurs éléments de la liste?
J'ai une liste de dictionnaires comme:
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'}]
l'obtention de la valeur pour "cle3" pour le deuxième élément de la liste, c'est comme:
dict_list[1]['key3']
dict2_value3
et aussi le code ci-dessous renvoie les articles 2:4 à partir de la liste:
dict_list[1:3]
Que faire si je veux obtenir les valeurs pour "cle3" pour plusieurs éléments de la liste. comme
dict_list[1:3]['key3']
quelque chose de semblable à ce que nous faisons dans MATLAB.
OriginalL'auteur Adham | 2013-07-11
Vous devez vous connecter pour publier un commentaire.
get
? Dans le cas des OP exemple la clé est toujours présent, ce qui signifie que vous pouvez utiliser en toute sécuritéx['key3']
. Aussi, à l'aide deget
à insérer indésirablesNone
s à l'intérieur de la liste, de sorte qu'il ne résout rien. Si la présence de la clé n'est pas garanti alors soit[x['key3'] for x in dict_list[1:3] if 'key3' in x]
ou[el for el in (x.get('key3') for x in dict_list[1:3]) if el is not None]
permettrait de résoudre le problème.D'accord avec vous, mais il ne sera pas insérer indésirables aucun, parce que la présence de la clé est vrai,
OriginalL'auteur Atul Arvind
OU
OU
OriginalL'auteur inspectorG4dget
[x['key3'] for x in dict_list[1:3]]
OriginalL'auteur zhangyangyu