2013-05-08 4 views
0

Ma structure de données ressemble à ceci:python - rechercher un élément dans un dictionnaire dans une liste

- testSet: a list of records in the test set, where each record 
      is a dictionary containing values for each attribute 

Et dans chaque enregistrement il y a un élément nommé « ID ». Je veux maintenant rechercher un enregistrement à l'intérieur testSet par une valeur d'ID. Donc, quand on me donne un ID = 230, je veux retourner l'enregistrement que son élément d'identification est égal à 230.

Comment puis-je faire cela?

Répondre

5
next((x for x in testSet if x["ID"] == 230), None) 

Ceci renverra le premier élément avec cet ID ou None s'il n'est pas trouvé.

2

Quelque chose comme ça?

for record in testSet: 
    if record['ID'] == 230: 
     return record 
0

.: par exemple

set = [{'ID': 50}, {'ID': 80}] 

def find_set(id): 
    return [elem for elem in set if elem['ID'] == id] 

Cela renverra tous les éléments avec l'ID spécifié. Si vous voulez seulement le premier, ajoutez [0] (après avoir vérifié s'il existe, par exemple:

def find_set(id): 
    elems = [elem for elem in set if elem['ID'] == id] 
    return elems[0] if elems else None 
Questions connexes