Dada la lista de strings, separe cada string por delimitador y genere diferentes listas para el prefijo y el sufijo.
Entrada : test_list = [“7$2”, “8$5”, “9$1”], delim = “$”
Salida : [‘7’, ‘8’, ‘9’], [‘2’, ‘5’ , ‘1’]
Explicación : diferentes listas para el prefijo y el sufijo de «$»Entrada : test_list = [“7*2”, “8*5”, “9*1”], delim = “*”
Salida : [‘7’, ‘8’, ‘9’], [‘2’, ‘5’, ‘1’]
Explicación : diferentes listas para el prefijo y el sufijo de «*»
Método n. ° 1: usar la comprensión de listas + dividir()
La es una de las formas en que se puede realizar esta tarea. En esto, realizamos la segregación usando split(), la primera parte de la división se compila en una lista de comprensión y al lado de otra.
Python3
# Python3 code to demonstrate working of # Segregate elements by delimiter # Using list comprehension + split() # initializing list test_list = ["7$2", "8$5", "9$1", "8$10", "32$6"] # printing original list print("The original list : " + str(test_list)) # using delim delim = "$" # using split() to split and different list comprehension # assigns results to different lists res1, res2 = [ele.split(delim)[0] for ele in test_list], [ele.split(delim)[1] for ele in test_list] # printing result print("The filtered list 1 : " + str(res1)) print("The filtered list 2 : " + str(res2))
The original list : ['7$2', '8$5', '9$1', '8$10', '32$6'] The filtered list 1 : ['7', '8', '9', '8', '32'] The filtered list 2 : ['2', '5', '1', '10', '6']
Método #2: Usando map() + list + zip() + generador de expresión
La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, ampliamos la lógica de construcción de la lista usando map() y zip() se usa para realizar la funcionalidad split() para cada elemento.
Python3
# Python3 code to demonstrate working of # Segregate elements by delimiter # Using map() + list + zip() + generator expression # initializing list test_list = ["7$2", "8$5", "9$1", "8$10", "32$6"] # printing original list print("The original list : " + str(test_list)) # using delim delim = "$" # map() used to cast different sections to different lists res1, res2 = map(list, zip(*(ele.split(delim) for ele in test_list))) # printing result print("The filtered list 1 : " + str(res1)) print("The filtered list 2 : " + str(res2))
The original list : ['7$2', '8$5', '9$1', '8$10', '32$6'] The filtered list 1 : ['7', '8', '9', '8', '32'] The filtered list 2 : ['2', '5', '1', '10', '6']
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