Dada una tupla de listas, escriba un programa Python para desempaquetar los elementos de las listas que están empaquetados dentro de la tupla dada. Ejemplos:
Input : (['a', 'apple'], ['b', 'ball']) Output : ['a', 'apple', 'b', 'ball'] Input : ([1, 'sam', 75], [2, 'bob', 39], [3, 'Kate', 87]) Output : [1, 'sam', 75, 2, 'bob', 39, 3, 'Kate', 87]
Enfoque #1: Usar reduce() reduce() es una operación de lista clásica que se usa para aplicar una función particular pasada en su argumento a todos los elementos de la lista. En este caso, usamos la función de agregar del módulo del operador , que simplemente agrega los argumentos de la lista dada a una lista vacía.
Python3
# Python3 program to unpack # tuple of lists from functools import reduce import operator def unpackTuple(tup): return (reduce(operator.add, tup)) # Driver code tup = (['a', 'apple'], ['b', 'ball']) print(unpackTuple(tup))
['a', 'apple', 'b', 'ball']
Enfoque n.º 2: uso de Numpy [alternativa al enfoque n.º 1]
Python3
# Python3 program to unpack # tuple of lists from functools import reduce import numpy def unpackTuple(tup): print (reduce(numpy.append, tup)) # Driver code tup = (['a', 'apple'], ['b', 'ball']) unpackTuple(tup)
['a' 'apple' 'b' 'ball']
Enfoque #3: Usar itertools.chain(*iterables) itertools.chain(*iterables) hacer un iterador que devuelva elementos desde el primer iterable hasta que se agote, luego continúe con el siguiente iterable, hasta que se agoten todos los iterables. Esto hace que nuestro trabajo sea mucho más fácil, ya que simplemente podemos agregar cada iterable a la lista vacía y devolverlo.
Python3
# Python3 program to unpack # tuple of lists from itertools import chain def unpackTuple(tup): res = [] for i in chain(*tup): res.append(i) print(res) # Driver code tup = (['a', 'apple'], ['b', 'ball']) unpackTuple(tup)
['a', 'apple', 'b', 'ball']
Enfoque #4: Usando extend()
Inicialice la lista vacía, itere sobre la tupla y use el método extend() para agregar elementos de lista a una lista inicializada. Finalmente, muestre la nueva lista
Python3
# Python3 program to unpack # tuple of lists tup = (['a', 'apple'], ['b', 'ball']) x=[] for i in tup: x.extend(i) print(x)
['a', 'apple', 'b', 'ball']
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA