Python: extracción de elementos prioritarios en la lista de tuplas

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

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

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

Deja una respuesta

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