如何在python中逐项连接无限数量的列表

如何在python中逐项连接无限数量的列表,python,list,concatenation,Python,List,Concatenation,如果我有一个不确定的列表,并且我想为它们编写一个方法来连接条目,那么最好的方法是什么? 意思是,我没有两个列表,比如列表A和列表B,我可以写这样的东西 X = [x+y for x, y in zip(A, B)] 但是我将生成各种列表,这些列表必须按顺序连接,所以我不知道如何迭代n个列表并连接它们 第一个列表将始终有一个或多个元素(其长度可以不同),而后面的列表将始终只有一个元素: ['a','b','c'],['foo'], ['bar'].... 我需要的结果是 ['afoobar',

如果我有一个不确定的列表,并且我想为它们编写一个方法来连接条目,那么最好的方法是什么? 意思是,我没有两个列表,比如列表A和列表B,我可以写这样的东西

X = [x+y for x, y in zip(A, B)]
但是我将生成各种列表,这些列表必须按顺序连接,所以我不知道如何迭代n个列表并连接它们

第一个列表将始终有一个或多个元素(其长度可以不同),而后面的列表将始终只有一个元素:

['a','b','c'],['foo'], ['bar']....
我需要的结果是

['afoobar','bfoobar','cfoobar']
这将适用于任意长度的任意数量的列表:

[''.join(prod) for prod in product(['a','b','c'],
                                   ['foo1_', 'foo2_'],
                                   ['bar'], ['end'])]
# ['afoo1_barend',
#  'afoo2_barend',
#  'bfoo1_barend',
#  'bfoo2_barend',
#  'cfoo1_barend',
#  'cfoo2_barend']

将不确定数量的列表放入单个列表中。获取
itertools.product
str.join
结果

>>> from itertools import product
>>> lists = [['a','b','c'],['foo'], ['bar']]
>>> [''.join(x) for x in product(*lists)]
['afoobar', 'bfoobar', 'cfoobar']

(在
product(*lists)
中的星号再次解压列表,以便调用
product
,它可以处理任意数量的iterables)

谢谢,这真的很有帮助!
>>> from itertools import product
>>> lists = [['a','b','c'],['foo'], ['bar']]
>>> [''.join(x) for x in product(*lists)]
['afoobar', 'bfoobar', 'cfoobar']