如果我有无限期数量的列表,并且我想为它们编写一个方法来逐项连接,那么最好的方法是什么? 意思是,我没有2个列表,比如列表A和列表B,可以编写类似
的内容X = [x+y for x, y in zip(A, B)]
但我会生成各种列表,必须按顺序连接,所以我不知道如何迭代n个列表并连接它们。
第一个列表将始终包含1个或多个元素(其长度可以不同),之后的元素将始终只有1个元素:
['a','b','c'],['foo'], ['bar']....
我需要的结果是
['afoobar','bfoobar','cfoobar']
答案 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.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
,该句柄处理任意数量的迭代次数)