in

Python: buscar en la lista

apple touch icon@2

En cuanto a su primera pregunta: ese código está perfectamente bien y debería funcionar si item es igual a uno de los elementos dentro myList. Tal vez intente encontrar una cadena que no exactamente coincidir con uno de los elementos o tal vez esté utilizando un valor flotante que sufre de inexactitud.

En cuanto a su segunda pregunta: en realidad, hay varias formas posibles de «encontrar» cosas en listas.

Comprobando si hay algo dentro

Este es el caso de uso que describe: comprobar si algo está dentro de una lista o no. Como sabe, puede utilizar el in operador para eso:

3 in [1, 2, 3] # => True

Filtrar una colección

Es decir, encontrar todos los elementos de una secuencia que cumplan una determinada condición. Puede usar la comprensión de listas o expresiones generadoras para eso:

matches = [x for x in lst if fulfills_some_condition(x)]
matches = (x for x in lst if x > 6)

Este último devolverá un generador que puede imaginar como una especie de lista perezosa que solo se creará tan pronto como la recorra. Por cierto, el primero es exactamente equivalente a

matches = filter(fulfills_some_condition, lst)

en Python 2. Aquí puede ver funciones de orden superior en funcionamiento. En Python 3, filter no devuelve una lista, sino un objeto similar a un generador.

Encontrar la primera aparición

Si solo desea lo primero que coincida con una condición (pero aún no sabe qué es), está bien usar un bucle for (posiblemente usando el else cláusula también, que no es muy conocida). También puedes usar

next(x for x in lst if ...)

que devolverá el primer partido o generará un StopIteration si no se encuentra ninguno. Alternativamente, puede usar

next((x for x in lst if ...), [default value])

Encontrar la ubicación de un artículo

Para las listas, también existe el index método que a veces puede ser útil si quieres saber dónde cierto elemento está en la lista:

[1,2,3].index(2) # => 1
[1,2,3].index(4) # => ValueError

Sin embargo, tenga en cuenta que si tiene duplicados, .index siempre devuelve el índice más bajo: ……

[1,2,3,2].index(2) # => 1

Si hay duplicados y desea todos los índices, puede usar enumerate() en lugar de:

[i for i,x in enumerate([1,2,3,2]) if x==2] # => [1, 3]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Java – Genéricos

gfg 200x200 min

Sed Command en Linux / Unix con ejemplos