/ / Comment savoir si une clé existe dans une liste multidimensionnelle en Python - python, list, python-2.7

Comment savoir si une clé existe dans une liste multidimensionnelle en Python - python, list, python-2.7

J'ai une liste remplie liste remplie comme si

record.append([key, value1, count1, value2, count2])

mais lorsque j'utilise la fonction intégrée, cela ne fonctionne pas.

if k in record

Quelle est la manière la plus élégante de rechercher une liste multi-dimensionnelle en Python?

Réponses:

2 pour la réponse № 1

Pour rechercher une clé dans une liste, vous devez effectuer une recherche dans ces listes internes:

vous pouvez utiliser any ici:

any(key in x for x in record)

ou si votre clé est toujours au premier index, cela fonctionnera également:

any(key == x[0] for x in record)

Ou utiliser list.extend pour ajouter des éléments individuels à la liste (au lieu de la liste entière), votre méthode fonctionnera correctement.


1 pour la réponse № 2
import operator
if key in map(operator.itemgetter(0),records): ...

est la méthode que j’utiliserais probablement, ou la méthode la plus efficace qui court-circuitera sans itérer la liste complète (selon le commentaire de Ashwini) ...

import operator,itertools
if key in itertools.imap(operator.itemgetter(0),records): ...

mais vraiment je pense ce que vous voulez réellement

def findRecord(key,records):
for r in records:
if r[0] == key:
return r

print findRecord("some_key",records)