Python: convierte una string en una array que tiene K caracteres por fila

Dado un String, conviértalo en Matrix, con K caracteres en cada fila.

Entrada : test_str = ‘GeeksforGeeks es mejor’, K = 7 
Salida : [[‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘f’, ‘o’], [‘r’ , ‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘ ‘], [‘i’, ‘s’, ‘ ‘, ‘b’, ‘e’, ​​’s’, ‘ t’]] 
Explicación : cada carácter se asigna a una fila de 7 elementos en la array.

Entrada : test_str = ‘GeeksforGeeks’, K = 7 
Salida : [[‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘f’, ‘o’], [‘r’, ‘ G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘ ‘]] 
Explicación : cada carácter se asigna a una fila de 7 elementos en la array. 
 

Método n.º 1: uso de la comprensión de listas + segmentación

La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, primero extraemos strings separadas para cada fila usando división y comprensión de listas. Luego, convierta cada string en una lista de caracteres usando list() .

Python3

# Python3 code to demonstrate working of
# Convert String to K characters row Matrix
# Using list comprehension + slicing
 
 
# Function to Convert String
# to K characters row Matrix
def convertToMatrix(test_str, K):
    # slicing strings
    temp = [test_str[idx: idx + K] for idx in range(0, len(test_str), K)]
 
    # conversion to list of characters
    res = [list(ele) for ele in temp]
 
    # printing result
    print("The converted Matrix : " + str(res))
 
 
# Driver Code   
# initializing string
input_str = 'GeeksforGeeks is best'
 
# printing original string
print("The original string is : " + str(input_str))
 
# initializing K
K = 7
 
# calling the function
convertToMatrix(input_str, K)

Producción:

La string original es: GeeksforGeeks es mejor La array convertida: [[‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘f’, ‘o’], [‘r’, ‘G ‘, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘ ‘], [‘i’, ‘s’, ‘ ‘, ‘b’, ‘e’, ​​’s’, ‘t’] ]

Complejidad de tiempo : O(n)

Espacio Auxiliar: O(n)

Método n.º 2: Usar comprensión de lista + map() + corte

Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de manera similar a las funciones anteriores, la diferencia es que la conversión a la lista se realiza utilizando map() en lugar de la comprensión de la lista.

Python3

# Python3 code to demonstrate working of
# Convert String to K characters row Matrix
# Using list comprehension + map() + slicing
 
 
# Function to Convert String
# to K characters row Matrix
def convertToMatrix(test_str, K):
    # slicing strings
    temp = [test_str[idx: idx + K] for idx in range(0, len(test_str), K)]
 
    # conversion using map
    res = list(map(lambda ele: list(ele), temp))
 
    # printing result
    print("The converted Matrix : " + str(res))
 
 
# Driver Code
# initializing string
input_str = 'GeeksforGeeks is best'
 
# printing original string
print("The original string is : " + str(input_str))
 
# initializing K
K = 7
 
# calling the function
convertToMatrix(input_str, K)

Producción:

La string original es: GeeksforGeeks es mejor La array convertida: [[‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘f’, ‘o’], [‘r’, ‘G ‘, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘ ‘], [‘i’, ‘s’, ‘ ‘, ‘b’, ‘e’, ​​’s’, ‘t’] ]

Complejidad de tiempo : O(n)

Espacio Auxiliar: O(n)

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 *