如何在python中以项目方式连接不确定数量的列表

时间:2017-04-11 12:24:19

标签: python list concatenation

如果我有无限期数量的列表,并且我想为它们编写一个方法来逐项连接,那么最好的方法是什么? 意思是,我没有2个列表,比如列表A和列表B,可以编写类似

的内容
X = [x+y for x, y in zip(A, B)]

但我会生成各种列表,必须按顺序连接,所以我不知道如何迭代n个列表并连接它们。

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

['a','b','c'],['foo'], ['bar']....

我需要的结果是

['afoobar','bfoobar','cfoobar']

2 个答案:

答案 0 :(得分:4)

function handleEvt(obj, pid, e){
    if (e.keyCode === 13) {  //where 13 is the enter button
      v = $(obj).val();
      alert('it is working');
    }
}

这适用于任意长度的任意数量的列表:

from itertools import product

[''.join(prod) for prod in product(['a','b','c'],['foo'], ['bar'])]

# ['afoobar', 'bfoobar', 'cfoobar']

答案 1 :(得分:2)

将无限数量的列表放入单个列表中。获取itertools.productstr.join结果。

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

product(*lists)中的星号再次打包列表以调用product,该句柄处理任意数量的迭代次数)