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