La función zip normal nos permite la funcionalidad de agregar los valores en un contenedor. Pero a veces, tenemos un requisito en el que necesitamos tener varias listas y listas que contienen como elementos de índice y necesitamos fusionarlos/comprimirlos juntos. Este es un problema bastante poco común, pero la solución aún puede ser útil. Analicemos ciertas formas en las que se puede idear una solución.
Método #1: Usar map() + __add__ Este problema se puede resolver usando la función map con la operación de suma. La función map realiza un tipo de función similar a la función zip y, en este caso, puede ayudar a llegar a una solución.
Python3
# Python3 code to demonstrate # zipping lists of lists # using map() + __add__ # initializing lists test_list1 = [[1, 3], [4, 5], [5, 6]] test_list2 = [[7, 9], [3, 2], [3, 10]] # printing original lists print ("The original list 1 is : " + str(test_list1)) print ("The original list 2 is : " + str(test_list2)) # using map() + __add__ # zipping lists of lists res = list(map(list.__add__, test_list1, test_list2)) # printing result print ("The modified zipped list is : " + str(res))
Producción :
The original list 1 is : [[1, 3], [4, 5], [5, 6]] The original list 2 is : [[7, 9], [3, 2], [3, 10]] The modified zipped list is : [[1, 3, 7, 9], [4, 5, 3, 2], [5, 6, 3, 10]]
Método #2: Usar itertools.chain() + zip() Esta combinación de estas dos funciones se puede usar para realizar esta tarea en particular. La función de string se puede utilizar para realizar la agregación entre listas, y la agregación dentro de la lista se realiza mediante la función zip.
Python3
# Python3 code to demonstrate # zipping lists of lists # using map() + __add__ import itertools # initializing lists test_list1 = [[1, 3], [4, 5], [5, 6]] test_list2 = [[7, 9], [3, 2], [3, 10]] # printing original lists print ("The original list 1 is : " + str(test_list1)) print ("The original list 2 is : " + str(test_list2)) # using map() + __add__ # zipping lists of lists res = [list(itertools.chain(*i)) for i in zip(test_list1, test_list2)] # printing result print ("The modified zipped list is : " + str(res))
Producción :
The original list 1 is : [[1, 3], [4, 5], [5, 6]] The original list 2 is : [[7, 9], [3, 2], [3, 10]] The modified zipped list is : [[1, 3, 7, 9], [4, 5, 3, 2], [5, 6, 3, 10]]
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