Python: registros con valor en el índice K

A veces, mientras trabajamos con registros, podemos tener un problema en el que necesitamos encontrar todas las tuplas de elementos para un valor particular en una posición K-ésima particular de la tupla. Este parece ser un problema peculiar, pero al trabajar con muchas claves en los registros, nos encontramos con este problema. Analicemos ciertas formas en que se puede resolver este problema.

Método n.º 1: Uso del bucle
Este es el método de fuerza bruta mediante el cual se puede resolver este problema. En esto, mantenemos una verificación y agregamos a la lista si encontramos un registro específico en la posición K en la tupla.

# Python3 code to demonstrate working of
# Records with Value at K index
# Using loop
  
# initialize list 
test_list = [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize ele 
ele = 3
  
# initialize K 
K = 1
  
# Records with Value at K index
# Using loop
# using y for K = 1 
res = []
for x, y, z in test_list:
    if y == ele:
        res.append((x, y, z))
  
# printing result
print("The tuples of element at Kth position : " + str(res))
Producción :

The original list is : [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
The tuples of element at Kth position : [(1, 3, 6), (6, 3, 0)]

Método n.º 2: usar enumerate()la comprensión de listas +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, enumeramos los índices usando enumerate(), el resto se realiza como en el método anterior pero de forma compacta.

# Python3 code to demonstrate working of
# Records with Value at K index
# Using enumerate() + list comprehension
  
# initialize list 
test_list = [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize ele 
ele = 3
  
# initialize K 
K = 1
  
# Records with Value at K index
# Using enumerate() + list comprehension
res = [b for a, b in enumerate(test_list) if b[K] == ele]
  
# printing result
print("The tuples of element at Kth position : " + str(res))
Producción :

The original list is : [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
The tuples of element at Kth position : [(1, 3, 6), (6, 3, 0)]

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 *