📜  Python|解包列表元组

📅  最后修改于: 2022-05-13 01:54:29.602000             🧑  作者: Mango

Python|解包列表元组

给定一个列表元组,编写一个Python程序来解包给定元组内的列表元素。

例子:

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]


方法 #1:使用reduce()

reduce()是一个经典的列表操作,用于将在其参数中传递的特定函数应用于所有列表元素。在这种情况下,我们使用了运算符模块的add函数,它只是将给定的列表参数添加到一个空列表中。

# 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']

方法 #2:使用 Numpy [方法 #1 的替代方案]

# 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']


方法 #3:使用itertools.chain(*iterables)

itertools.chain(*iterables)创建一个迭代器,它从第一个迭代器返回元素,直到它耗尽,然后继续到下一个迭代器,直到所有的迭代器都被耗尽。这使我们的工作变得更加容易,因为我们可以简单地将每个可迭代对象附加到空列表并返回它。

# 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']