/ / ¿Cómo puedo saber si existe una clave en una lista multidimensional en Python - python, list, python-2.7

¿Cómo puedo saber si existe una clave en una lista multidimensional en Python - python, list, python-2.7

Tengo una lista poblada lista poblada como tal

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

pero cuando uso la función incorporada no funciona.

if k in record

¿Cuál es la forma más elegante de buscar una lista multidimensional en Python?

Respuestas

2 para la respuesta № 1

Para buscar una clave en una lista de la lista, debe buscar dentro de esas listas internas:

puedes usar any aquí:

any(key in x for x in record)

o si su clave está siempre en el primer índice, esto también funcionará:

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

o usar list.extend para agregar elementos individuales a la lista (en lugar de la lista completa), entonces su método funcionará bien.


1 para la respuesta № 2
import operator
if key in map(operator.itemgetter(0),records): ...

es el método que probablemente usaría, o el método más eficiente que cortocircuitaría sin iterar toda la lista (según el comentario de Ashwini) ...

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

Pero realmente creo que lo que realmente quieres

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

print findRecord("some_key",records)