Programa de Python para encontrar índices de tupla de otra lista de tupla

Dada la lista de tuplas y la lista de búsqueda que consta de tuplas para buscar, nuestra tarea es escribir un programa Python para extraer índices de tuplas coincidentes.

Entrada: test_list = [(4, 5), (7, 6), (1, 0), (3, 4)], search_tup = [(3, 4), (8, 9), (7, 6) , (1, 2)]

Salida: [3, 1]

Explicación: (3, 4) de la lista de búsqueda se encuentra en el tercer índice en test_list, por lo tanto, se incluye en el resultado.

Entrada: test_list = [(4, 5), (7, 6), (1, 0), (3, 4)], search_tup = [(3, 4), (8, 9), (7, 6) , (1, 0)]

Salida: [3, 1, 2]

Explicación: (3, 4) de la lista de búsqueda se encuentra en el tercer índice en test_list, por lo tanto, se incluye en el resultado.

Método n. ° 1: usar el diccionario de búsqueda + enumerar() + comprensión de la lista

En esto, se forma un diccionario de búsqueda para mapear todas las tuplas con índices coincidentes. Luego se usa el diccionario de búsqueda para obtener índices de tuplas mapeadas como resultado usando la comprensión de listas.

Python3

# Python3 code to demonstrate working of
# Find tuple indices from other tuple list
# Using lookup dictionary + enumerate() + list comprehension
  
# initializing list
test_list = [(4, 5), (7, 6), (1, 0), (3, 4)]
               
# printing original list
print("The original list is : " + str(test_list))
  
# initializing search tuple 
search_tup = [(3, 4), (8, 9), (7, 6), (1, 2)]
  
# creating lookup_dict
lookup_dict = {val: key for key,val in enumerate(test_list)}
  
# creating result list
res = [lookup_dict[idx] for idx in search_tup if idx in lookup_dict]
  
# printing result
print("The match tuple indices : " + str(res))

Producción:

The original list is : [(4, 5), (7, 6), (1, 0), (3, 4)]
The match tuple indices : [3, 1]

Método n. ° 2: usar la comprensión de listas + enumerar()

En esto, realizamos la tarea de obtener índices usando enumerate(), y la comprensión de listas se usa para la tarea de iteración de todos los elementos de la tupla y coincidencia para la igualdad.

Python3

# Python3 code to demonstrate working of
# Find tuple indices from other tuple list
# Using list comprehension + enumerate()
  
# initializing list
test_list = [(4, 5), (7, 6), (1, 0), (3, 4)]
               
# printing original list
print("The original list is : " + str(test_list))
  
# initializing search tuple 
search_tup = [(3, 4), (8, 9), (7, 6), (1, 2)]
  
# enumerate() gets all the indices 
res = [idx for idx, val in enumerate(test_list) for ele in search_tup if ele == val]
  
# printing result
print("The match tuple indices : " + str(res))

Producción:

The original list is : [(4, 5), (7, 6), (1, 0), (3, 4)]
The match tuple indices : [1, 3]

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 *