A veces, mientras trabajamos con datos de Python, podemos tener problemas en los que necesitamos realizar la división de una string, que tiene una asignación con un elemento en otra lista, por lo que debemos realizar la asignación a diferentes palabras formadas debido a la división. Este tipo de problema es peculiar, pero puede tener aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [5, 6], str_list = [‘Gfg es mejor’, ‘Me encanta Gfg’]
Salida : [5, 5, 5, 6, 6, 6]Entrada : test_list = [5], str_list = [‘Gfg es mejor’]
Salida : [5, 5, 5]
Método #1: Usarmap() + zip() + enumerate() + split()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de dividir valores usando split(), y el mapeo de elementos correspondiente usando zip() y map(). La iteración se realiza mediante enumerate().
# Python3 code to demonstrate working of # Synchronized Split list with other # Using map() + zip() + enumerate() + split() # initializing list test_list = [5, 6, 3, 7, 4] # printing original list print("The original list is : " + str(test_list)) # initializing String list str_list = ['Gfg', 'is best', 'I love', 'Gfg', 'and CS'] # Synchronized Split list with other # Using map() + zip() + enumerate() + split() temp = list(map(list, zip(*[(idx, sub) for idx, val in enumerate(map(lambda x: x.split(), str_list), 1) for sub in val]))) res = [] for ele in temp[0]: res.append(test_list[ele - 1]) # printing result print("Mapped list elements : " + str(res))
The original list is : [5, 6, 3, 7, 4] Mapped list elements : [5, 6, 6, 3, 3, 7, 4, 4]
Método n.º 2: usarchain.from_iterables() + zip()
Esto es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de aplanar usando chain.from_iterables() y zip() se usa para realizar iteraciones paralelas.
# Python3 code to demonstrate working of # Synchronized Split list with other # Using chain.from_iterables() + zip() from itertools import chain # initializing list test_list = [5, 6, 3, 7, 4] # printing original list print("The original list is : " + str(test_list)) # initializing String list str_list = ['Gfg', 'is best', 'I love', 'Gfg', 'and CS'] # Synchronized Split list with other # Using chain.from_iterables() + zip() res = list(chain.from_iterable([[sub1] * len(sub2.split()) for sub1, sub2 in zip(test_list, str_list)])) # printing result print("Mapped list elements : " + str(res))
The original list is : [5, 6, 3, 7, 4] Mapped list elements : [5, 6, 6, 3, 3, 7, 4, 4]
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