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