Comparacion Lista de listas y lista python

publicado por: Anonymous

estoy buscando hacer una comparacion de una lista con una lista de listas. Con este codigo puedo hacerlo entre 2 listas pero el problema sucede cuando es una lista con una lista de listas.

Busco editar mi codigo a corregir.

lista1=["paco","pepe","luis"]
lista2=["diego","mari","luis"]
comparacion = []

for item in lista1:
  if item in lista2:
    comparacion.append(item)

Codigo a corregir:

lista1=["paco","pepe","luis"]
lista2=[["artur","2"],["paco","5"],["pepe","2"],["luis","2"],["beto","2"]]
comparacion = []

for item in lista1:
  if item in lista2:
    comparacion.append(item)

print comparacion
#Busco algo asi como respuesta:
>>>comparacion=[["paco","5"],["pepe","2"],["luis","2"]]

solución

Si queremos algo sencillo, esto es lo que haría:

lista1=["paco","pepe","luis"]
lista2=[["artur","2"],["paco","5"],["pepe","2"],["luis","2"],["beto","2"]]
comparacion = []

for item in lista1:
  comparacion.extend([e for e in lista2 if item == e[0]])

print comparacion
  • [e for e in lista2 if item == e[0]] devuelve una lista de al menos un elemento dónde el nombre de lista1 se encuentre en el primer elemento de las sublistas de Lista2
  • Con extend simplemente estamos agregando la lista anterior a comparacion
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *