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))
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))
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