Python | Lista de índices de elemento coincidente de otra lista

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))
Producción :

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))
Producción :

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

Deja una respuesta

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