A veces, mientras trabajamos con Python Records, podemos tener un problema en el que necesitamos realizar la extracción de todos los elementos de prioridad de los registros, que generalmente ocurren como una tupla de elementos binarios. Este tipo de problema puede tener una posible aplicación en dominios de desarrollo web y juegos. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada :
lista_prueba = [(7, 1), (3, 2), (4, 6)]
lista_anterior = [1, 3, 4]
Salida : [1, 3, 4]Entrada :
lista_prueba = [(7, 3), (3, 4), (1, 6)]
lista_anterior = [1, 3, 4]
Salida : [3, 4, 1]
Método n.º 1: Uso del bucle
Este es un enfoque de fuerza bruta para resolver este problema. En esto, iteramos cada elemento de la lista de prioridades y verificamos la tupla individual, filtramos el elemento coincidente y lo agregamos a la lista.
# Python3 code to demonstrate working of # Extracting Priority Elements in Tuple List # loop # initializing list test_list = [(5, 1), (3, 4), (9, 7), (10, 6)] # printing original list print("The original list is : " + str(test_list)) # initializing Priority list prior_list = [6, 4, 7, 1] # Extracting Priority Elements in Tuple List # loop res = [] for sub in test_list: for val in prior_list: if val in sub: res.append(val) # printing result print("The extracted elements are : " + str(res))
The original list is : [(5, 1), (3, 4), (9, 7), (10, 6)] The extracted elements are : [1, 4, 7, 6]
Método n.º 2: Uso de la comprensión de listas +index()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de verificar el elemento requerido de la tupla usando index() y comparación de prioridad.
# Python3 code to demonstrate working of # Extracting Priority Elements in Tuple List # Using List comprehension + <code>index() # initializing list test_list = [(7, 1), (6, 4), (4, 7), (1, 6)] # printing original list print("The original list is : " + str(test_list)) # initializing Priority list prior_list = [6, 4, 7, 1] # Extracting Priority Elements in Tuple List # Using List comprehension + <code>index() res = [sub[0] if prior_list.index(sub[0]) < prior_list.index(sub[1]) else sub[1] for sub in test_list] # printing result print("The extracted elements are : " + str(res))
The original list is : [(7, 1), (6, 4), (4, 7), (1, 6)] The extracted elements are : [7, 6, 4, 6]
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