Python | Dividir K elementos después de cada N valores

La división simple de listas tiene muchas aplicaciones y, junto con ella, también existen muchas variaciones de división de listas que pueden llegar a nosotros para resolver. Uno de esos problemas puede ser dividir K elementos después de cada N valores. Analicemos las formas en que se puede resolver este problema en particular.

Método #1: Uso de bucles
Este es el método de fuerza bruta e ingenuo para resolver este problema en particular con la ayuda de bucles, podemos formar una nueva lista para comprobar si hay K ocurrencias de elementos después de cada N elementos.

# Python3 code to demonstrate
# Getting K elements after N values
# using loops
  
# initializing list
test_list = [4, 5, 2, 7, 8, 4, 10, 9, 11, 13]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing N and K
N = 2
K = 3
  
# using loops
# Getting K elements after N values
res =[]
while test_list:
    res += test_list[:K]
    test_list = test_list[K + N:]
  
# print result
print("The list after selective slicing : " + str(res))
Producción :

The original list : [4, 5, 2, 7, 8, 4, 10, 9, 11, 13]
The list after selective slicing : [4, 5, 2, 4, 10, 9]

Método n.º 2: usar la comprensión de listas
Esta tarea en particular se puede realizar usando la forma abreviada del método anterior usando la comprensión de listas, también usamos el corte de listas en este método para realizar el corte necesario.

# Python3 code to demonstrate
# Getting K elements after N values
# using list comprehension
  
# initializing list
test_list = [4, 5, 2, 7, 8, 4, 10, 9, 11, 13]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing N and K
N = 2
K = 3
  
# using list comprehension
# Getting K elements after N values
res = [y for x in [test_list[i : i + K] for i in 
       range(0, len(test_list), N + K)] for y in x] 
  
# print result
print("The list after selective slicing : " + str(res))
Producción :

The original list : [4, 5, 2, 7, 8, 4, 10, 9, 11, 13]
The list after selective slicing : [4, 5, 2, 4, 10, 9]

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 *