Cap*_*nty 3 python list python-2.7
所以我说两个清单:
list1 = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
和
list2 = [4]
Run Code Online (Sandbox Code Playgroud)
我需要将它们组合起来以产生以下输出:
list3=[[1,4],[2,4],[3,4]]
Run Code Online (Sandbox Code Playgroud)
itertools
似乎没有一个方法来完成这个,该zip
功能在第二个列表时结束......
我确定那里有一个班轮,但是我发现这里有太多关于类似但不是同样问题的东西和谷歌.
谢谢你的帮助!
您可以迭代列表并连接list2
当前迭代的值和元素:
list1 = [1,2,3]
list2 = [4]
new_list = [[a]+list2 for a in list1]
Run Code Online (Sandbox Code Playgroud)
输出:
[[1, 4], [2, 4], [3, 4]]
Run Code Online (Sandbox Code Playgroud)
或者,替代方案,尽管较低的解决方案使用map
:
final_list = map(lambda x:[x, list2[0]], list1)
Run Code Online (Sandbox Code Playgroud)
输出:
[[1, 4], [2, 4], [3, 4]]
Run Code Online (Sandbox Code Playgroud)
您也可以使用itertools izip_longest(py2) 或itertools zip longest(py3):
import itertools
list(map(list,itertools.izip_longest([], list1, fillvalue=list2[0])))
Run Code Online (Sandbox Code Playgroud)
返回:
[[4, 1], [4, 2], [4, 3]]
Run Code Online (Sandbox Code Playgroud)