Las aplicaciones de desarrollo y, a veces, de aprendizaje automático requieren dividir listas en listas más pequeñas de manera personalizada, es decir, en ciertos valores en los que se debe realizar la división. Esta es una utilidad bastante útil para tener conocimiento. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar la comprensión de listas +zip()
Al combinar el poder de la comprensión de listas y zip()
, esta tarea se puede lograr. En esto, comprimimos el principio y el final de la lista y luego seguimos cortando la lista a medida que llegan y eliminando nuevas listas de ellos.
# Python3 code to demonstrate # to perform custom list split # using list comprehension + zip() # initializing string test_list = [1, 4, 5, 6, 7, 3, 5, 9, 2, 4] # initializing split index list split_list = [2, 5, 7] # printing original list print ("The original list is : " + str(test_list)) # printing original split index list print ("The original split index list : " + str(split_list)) # using list comprehension + zip() # to perform custom list split res = [test_list[i : j] for i, j in zip([0] + split_list, split_list + [None])] # printing result print ("The splitted lists are : " + str(res))
The original list is : [1, 4, 5, 6, 7, 3, 5, 9, 2, 4] The original split index list : [2, 5, 7] The splitted lists are : [[1, 4], [5, 6, 7], [3, 5], [9, 2, 4]]
Método #2: Usaritertools.chain() + zip()
La tarea realizada por la función de comprensión de lista de obtener los fragmentos divididos también se puede realizar mediante la función de string. Esto es más útil cuando deseamos manejar listas más grandes ya que este método es más eficiente.
# Python3 code to demonstrate # to perform custom list split # using itertools.chain() + zip() from itertools import chain # initializing string test_list = [1, 4, 5, 6, 7, 3, 5, 9, 2, 4] # initializing split index list split_list = [2, 5, 7] # printing original list print ("The original list is : " + str(test_list)) # printing original split index list print ("The original split index list : " + str(split_list)) # using itertools.chain() + zip() # to perform custom list split temp = zip(chain([0], split_list), chain(split_list, [None])) res = list(test_list[i : j] for i, j in temp) # printing result print ("The splitted lists are : " + str(res))
The original list is : [1, 4, 5, 6, 7, 3, 5, 9, 2, 4] The original split index list : [2, 5, 7] The splitted lists are : [[1, 4], [5, 6, 7], [3, 5], [9, 2, 4]]
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