A veces, mientras trabajamos con la lista de Python, tenemos un problema en el que tenemos que buscar un elemento en la lista. Pero esto se puede extender a una lista y necesita encontrar los lugares exactos donde ocurren los elementos en otra lista. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar bucle +count()
Este es el método bruto para realizar esta tarea. En esto, solo podemos contar la aparición de un elemento en otra lista y, si lo encontramos, agregamos su índice a la lista de resultados.
# Python3 code to demonstrate working of # Indices list of matching element from other list # Using loop + count() # initializing lists test_list1 = [5, 7, 8, 9, 10, 11] test_list2 = [8, 10, 11] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Indices list of matching element from other list # Using loop + count() res = [] i = 0 while (i < len(test_list1)): if (test_list2.count(test_list1[i]) > 0): res.append(i) i += 1 # printing result print("The matching element Indices list : " + str(res))
The original list 1 is : [5, 7, 8, 9, 10, 11] The original list 2 is : [8, 10, 11] The matching element Indices list : [2, 4, 5]
Método n.º 2: usar la comprensión de listas +set() + enumerate()
La combinación de las funciones anteriores se puede usar para realizar la tarea. En estos, simplemente convertimos la lista para establecer y luego verificamos el índice y el valor juntos para verificar su existencia usando enumerate()
y agregamos el índice si se encuentra.
# Python3 code to demonstrate working of # Indices list of matching element from other list # Using list comprehension + set() + enumerate() # initializing lists test_list1 = [5, 7, 8, 9, 10, 11] test_list2 = [8, 10, 11] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # Indices list of matching element from other list # Using list comprehension + set() + enumerate() temp = set(test_list2) res = [i for i, val in enumerate(test_list1) if val in temp] # printing result print("The matching element Indices list : " + str(res))
The original list 1 is : [5, 7, 8, 9, 10, 11] The original list 2 is : [8, 10, 11] The matching element Indices list : [2, 4, 5]
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA