Python 如何压缩两个列表,其中一个列表只包含一个项目

Python 如何压缩两个列表,其中一个列表只包含一个项目,python,list,Python,List,我有两份清单: list1 = [1,2,3] 及 我需要将它们结合起来,以产生以下输出: list3 = [[1,4],[2,4],[3,4]] itertools似乎没有实现这一点的方法,zip函数在第二个列表完成时结束 我确信这里有一行代码,但我在这里和谷歌上发现了太多类似但不相同的问题。您可以迭代列表,并将list2值和当前迭代的元素连接起来: list1 = [1,2,3] list2 = [4] new_list = [[a]+list2 for a in list1] 输出:

我有两份清单:

list1 = [1,2,3]

我需要将它们结合起来,以产生以下输出:

list3 = [[1,4],[2,4],[3,4]]
itertools
似乎没有实现这一点的方法,
zip
函数在第二个列表完成时结束


我确信这里有一行代码,但我在这里和谷歌上发现了太多类似但不相同的问题。

您可以迭代列表,并将
list2
值和当前迭代的元素连接起来:

list1 = [1,2,3]
list2 = [4]
new_list = [[a]+list2 for a in list1]
输出:

[[1, 4], [2, 4], [3, 4]]
[[1, 4], [2, 4], [3, 4]]
或者,使用
map
的另一种解决方案,尽管较低:

final_list = map(lambda x:[x, list2[0]], list1)
输出:

[[1, 4], [2, 4], [3, 4]]
[[1, 4], [2, 4], [3, 4]]

你需要第三种选择吗

>>> list(map(list,zip(list2 * len(list1), list1)))
[[4, 1], [4, 2], [4, 3]]
您也可以使用或:

返回:

[[4, 1], [4, 2], [4, 3]]
您也可以尝试使用:


你在找这样的东西吗

无任何外部模块或重代码:

print(list(map(lambda x:[x,list2[0]],list1)))
当数据为:

list1 = [1,2,3]
list2 = [4]
输出:

[[1, 4], [2, 4], [3, 4]]
[(1, 4), (2, 4), (3, 4)]
正如有人指出的,这已经给出了答案,下面是另一个解决方案:

list1 = [1,2,3]
list2 = [4]

print(list(zip(list1,list2*len(list1))))
输出:

[[1, 4], [2, 4], [3, 4]]
[(1, 4), (2, 4), (3, 4)]

自由编辑列表的答案。@AntonvBR:谢谢!完全忽略了这一点。我运行了一些计时,您的第一个解决方案是最快的(也许并不奇怪)。@AntonvBR列表理解速度比
map
在较短的示例中更快,但是,
map
在使用lambda函数时(如本例中)几乎总是较慢。当第二个列表结束时,我将编辑此帖子+1个拉链_longest@AntonvBR谢谢你在投票中付出的努力,我没看到。不用担心。有时会发生。但是如果你有一个相同的答案,你最好把它去掉。我祝你圣诞快乐!感谢您的评论和支持。祝你好运,天气好!小礼物,3plus;)@耶斯雷尔,哈哈哈。你真好。你让我笑了,并且想到在学习的同时帮助这里的人们是多么美好。圣诞快乐,新年快乐。(顺便说一句,你的超快速回复已经联系到了更多的人。我也会找到一些帖子来投票!!!