Python: separe los elementos por delimitador

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))
Producción

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))
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *