如何解包列表元组

How to unpack a tuple of lists

我正在尝试解压缩包含在元组中的列表的元素。

myTuple = (['a', 'list', 'of', 'strings'], ['inside', 'a', 'tuple'], ['extra', 'words', 'for', 'filler'])

例如我想获取这个元素 ('a')

我试过这个:

for (i, words) in list(enumerate(myTuple)):
    print(words)

但是这个returns列表是这样的

['a', 'list', 'of', 'strings']
['inside', 'a', 'tuple']
etc...

如何获取列表中的元素?

目前您只是遍历整个循环并打印出列表中包含的元素。

但是,如果您想访问列表中的特定元素,则只需使用 .index()

按名称引用它

或者你可以只打印(list(indexposition))

您可以使用 reduce,例如。用 numpy

from functools import reduce
reduce(append, myTuple)

Out[149]: 
array(['a', 'list', 'of', 'strings', 'inside', 'a', 'tuple', 'extra',
       'words', 'for', 'filler'], dtype='<U7')

或者,基础

import operator
from functools import reduce
reduce(operator.add, myType, [])
# or, reduce(lambda x, y: x + y, myTuple)

reducemapfilter 等是一个经典的列表操作函数。它采用一个初始值,这里是一个空列表,并连续应用一个函数 (append) 到序列的每个元素 (myTuple).

您可以使用元组的索引,然后使用列表来访问最内层的元素。例如,要获取字符串 'a',您可以调用:

myTuple[0][0]

如果您想遍历列表中的所有元素,可以使用 chain 方法形式 itertools。例如:

from itertools import chain

for i in chain(*myTuple):
    print(i)