Python: tuplas de longitud personalizada de String

Dada una string, extraiga la lista de tuplas, con cada tupla de longitud personalizada, delimitada por comas.

Entrada  : test_str = «6 6 7, 3 4, 2»

Salida : [(6, 6, 7), (3, 4), (2, )]

Explicación : las longitudes personalizadas de 3, 2, 1 se han convertido en una lista de tuplas.

Entrada  : test_str = «7, 7, 4»

Salida : [(7, ), (7, ), (4, )]

Explicación : todos los elementos tienen una longitud de 1.

Método #1: Usar int() + tuple() + split() + comprensión de lista

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la conversión de caracteres de string usando int() y tuple() y split() se usa para dividir en delimitador.

Python3

# Python3 code to demonstrate working of
# Custom length tuples from String
# Using int() + tuple() + split() + list comprehension
 
# initializing string
test_str = '4 6 7, 1 2, 3, 4 6 8 8'
 
# printing original string
print("The original string is : " + str(test_str))
 
# split() used to split on delimiter and
# type casted to int followed by tuple casting
test_str = test_str.split(', ')
res = [tuple(int(ele) for ele in sub.split()) for sub in test_str]
 
# printing result
print("The constructed custom length tuples : " + str(res))
Producción

The original string is : 4 6 7, 1 2, 3, 4 6 8 8
The constructed custom length tuples : [(4, 6, 7), (1, 2), (3, ), (4, 6, 8, 8)]

Método #2: Usando map() + int + tuple() + comprensión de lista + split()

La combinación de las funciones anteriores proporciona otra forma en la que se puede realizar esta tarea. En esto, realizamos una tarea usando un método similar al anterior, solo que la diferencia es usar map() para extender la lógica de conversión de enteros a elementos.

Python3

# Python3 code to demonstrate working of
# Custom length tuples from String
# Using map() + int + tuple() + list comprehension + split()
 
# initializing string
test_str = '4 6 7, 1 2, 3, 4 6 8 8'
 
# printing original string
print("The original string is : " + str(test_str))
 
# split() used to split on delimiter and
# using map() to extend logic of element casting
res = [tuple(map(int, sub.split())) for sub in test_str.split(", ")]
 
# printing result
print("The constructed custom length tuples : " + str(res))
Producción

The original string is : 4 6 7, 1 2, 3, 4 6 8 8
The constructed custom length tuples : [(4, 6, 7), (1, 2), (3, ), (4, 6, 8, 8)]

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 *