Python – Recortar tuplas por K

Dada la lista de tuplas, recorte cada tupla por K.

Ejemplos:

Entrada : test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)], K = 2 
Salida : [(2,), (9,), (2,), (2,)] 
Explicación : se eliminan 2 elementos de la parte delantera y trasera.
 

Entrada : test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)], K = 1 
Salida : [(3, 2, 1), (4, 9, 2), (1, 2, 3), (8, 2, 1)] 
Explicación : 1 elemento cada uno desde el frente y se quitan los traseros. 

Método #1: Usar bucle + corte 

En esto, omitimos los elementos K delanteros y traseros mediante el uso de cortes, la conversión de tupla a lista y luego la reconversión a tupla.

Python3

# Python3 code to demonstrate working of
# Trim tuples by K
# Using loop + slicing
  
# initializing list
test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1),
             (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
res = []
for ele in test_list:
    N = len(ele)
  
    # triming elements
    res.append(tuple(list(ele)[K: N - K]))
  
# printing result
print("Converted Tuples : " + str(res))

Producción:

La lista original es: [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1 , 7)]
Tuplas convertidas: [(2,), (9,), (2,), (2,)]

Método n.° 2: usar la comprensión de listas + segmentación 

En esto, realizamos tareas de manera similar al método anterior, con la diferencia de que se emplea la comprensión de lista para realizar la tarea en una sola línea.

Python3

# Python3 code to demonstrate working of
# Trim tuples by K
# Using list comprehension + slicing
  
# initializing list
test_list = [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1),
             (9, 1, 2, 3, 5), (4, 8, 2, 1, 7)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# one-liner approach to solve problem
res = [tuple(list(ele)[K: len(ele) - K]) for ele in test_list]
  
# printing result
print("Converted Tuples : " + str(res))

Producción:

La lista original es: [(5, 3, 2, 1, 4), (3, 4, 9, 2, 1), (9, 1, 2, 3, 5), (4, 8, 2, 1 , 7)]
Tuplas convertidas: [(2,), (9,), (2,), (2,)]

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 *