Hola, me llamo Luis y esta vez les traigo este artículo.
Si trabaja como desarrollador de Python, analista de datos o científico de datos para cualquier organización, entonces es muy importante que sepa cómo jugar con Listas y obtener la información solicitada, como índices o elementos coincidentes.
In Python, Lists store an ordered collection of items which can be of different types. Each item in a list has an assigned index value. It is important to note that Python is a zero indexed based language. All this means is that the first item in the list is at index 0.
Si desea obtener todas las ocurrencias y la posición de uno o más elementos en una lista utilizando Python, hay muchas formas, pero necesita una forma muy suficiente para obtener los elementos coincidentes de la lista.
Veamos el siguiente ejemplo:
MyList = ['Mango', 'Orange', 'Banana', 'Apple', 'Grapes', 'Apple']
Ahora, puede ver aquí, hemos creado una lista de frutas y queremos obtener la aparición de Apple de la lista y el programa Python almacenará esta lista como se indica a continuación:
En la lista anterior, puede ver que la lista basada en Python comienza con el índice 0 y termina con el elemento total-1
. En nuestros casos, el último valor de índice en nuestra lista de frutas será 6–1 = 5
.
Ahora, este punto es ¿Cómo obtener la ocurrencia de un elemento en la lista?. También podría usar una lista de comprensión con enumerar, como se indica a continuación:
# list of items MyList = ['Mango', 'Orange', 'Banana', 'Apple', 'Grapes', 'Apple'] #searchable item value SeachItem='Apple' #store matching values through enumerate into a list comprehension indexes = [n for n, x in enumerate(MyList) if x==SeachItem] #matching indexed value indexes [3, 5]
Mejor intercambio de datos con pandas
Si tiene pandas, puede obtener fácilmente esta información con un objeto Series:
# pandas library for data manipulation in python import pandas as pd # list of items MyList = ['Mango', 'Orange', 'Banana', 'Apple', 'Grapes', 'Apple'] #convert list into series variable series = pd.Series(MyList) #values in series variable series # Display output0 Mango 1 Orange 2 Banana 3 Apple 4 Grapes 5 Apple
#searchable item value SeachItem='Apple' #comparison check series == SeachItem # Display output 0 False 1 False 2 False 3 True 4 False 5 True
Si intenta pasar esa serie de valores booleanos a la serie a través de la notación de subíndice, y obtiene solo los miembros coincidentes:
series[series == SeachItem] # Display output 3 Apple 5 Apple dtype: object
En este caso, si los quiere en una lista o tupla, simplemente páselos al constructor como se indica a continuación:
#list or tuple list(series[series == SeachItem].index) # Display output [3, 5]
A través de For Loop
Esta es la otra opción para obtener los elementos coincidentes de una lista determinada, solo para aquellos que provienen de otro idioma y puede ser con un bucle simple, es más fácil de entender y usar:
# list of items MyList = ['Mango', 'Orange', 'Banana', 'Apple', 'Grapes', 'Apple'] #searchable item valie SeachItem='Apple' # converting a list comprehension mlist = enumerate(MyList) #for loop for index, item in mlist: if item == SeachItem: print(index, item) # Display output 3 Apple 5 Apple
Si está manipulando datos, probablemente debería usar pandas porque tiene herramientas mucho más elegantes que las soluciones alternativas puras de Python.
Otro hecho es que hay muchas formas de enumerar los índices coincidentes de la lista, pero debe tener cuidado con la eficiencia de su código.
Gracias por leer este artículo.
Añadir comentario