A veces, podemos enfrentarnos a un problema en el que necesitamos dividir una lista a lista de lista en el carácter en blanco enviado como delimitador. Este tipo de problema se puede usar para enviar mensajes o se puede usar en casos en los que se desea tener una lista de listas de listas nativas. Vamos a discutir ciertas formas en que esto se puede hacer.
Método n.º 1: uso index()
y división
de listas La división de listas se puede usar para obtener las sublistas de la lista nativa y la función de índice se puede usar para verificar la string vacía que potencialmente puede actuar como un separador. El inconveniente de esto es que solo funciona para una sola división, es decir, solo puede dividir una lista en 2 sublistas.
# Python3 code to demonstrate # divide list to siblist on deliminator # using index() + list slicing # initializing list test_list = ['Geeks', 'for', '', 'Geeks', 1, 2] # printing original list print("The original list : " + str(test_list)) # using index() + list slicing # divide list to siblist on deliminator temp_idx = test_list.index('') res = [test_list[: temp_idx], test_list[temp_idx + 1: ]] # print result print("The list of sublist after separation : " + str(res))
La lista original: [‘Geeks’, ‘for’, ”, ‘Geeks’, 1, 2]
La lista de sublistas después de la separación: [[‘Geeks’, ‘for’], [‘Geeks’, 1, 2] ]
Método n.º 2: usoitertools.groupby() + list comprehension
El problema del método propuesto anteriormente se puede resolver utilizando la función groupby que podría dividirse en todos los saltos de lista dados por las strings vacías.
# Python3 code to demonstrate # divide list to siblist on deliminator # using itertools.groupby() + list comprehension from itertools import groupby # initializing list test_list = ['Geeks', '', 'for', '', 4, 5, '', 'Geeks', 'CS', '', 'Portal'] # printing original list print("The original list : " + str(test_list)) # using itertools.groupby() + list comprehension # divide list to siblist on deliminator res = [list(sub) for ele, sub in groupby(test_list, key = bool) if ele] # print result print("The list of sublist after separation : " + str(res))
La lista original: [‘Geeks’, ”, ‘for’, ”, 4, 5, ”, ‘Geeks’, ‘CS’, ”, ‘Portal’]
La lista de sublistas después de la separación: [[‘Geeks’] , [‘para’], [4, 5], [‘Geeks’, ‘CS’], [‘Portal’]]
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