gpt4 book ai didi

python - 我应该如何使用列表理解重写这个 map() 示例?

转载 作者:行者123 更新时间:2023-11-28 20:45:18 25 4
gpt4 key购买 nike

>>> a = [1,2,3,4]
>>> b = [17,12,11,10]
>>> c = [-1,-4,5,9]

>>> list(map(lambda x,y,z:x+y+z, a,b,c))
[17, 10, 19, 23]

尝试过:

>>>[(x+y+z) for x in a for y in b for z in c]

但添加了这些列表元素的所有可能组合(不仅仅是先对后、后对后等等):

[17, 14, 23, 27, 12, 9, 18, 22, 11, 8, 17, 21, 10, 7, 16, 20, 18, 15, 24, 28, 13, 10, 19, 23, 12, 9, 18, 22, 11, 8, 17, 21, 19, 16, 25, 29, 14, 11, 20, 24, 13, 10, 19, 23, 12, 9, 18, 22, 20, 17, 26, 30, 15, 12, 21, 25, 14, 11, 20, 24, 13, 10, 19, 23]

这可能吗?谢谢。

最佳答案

您正在寻找 zip ,它“锁定步骤”驱动多个可迭代对象:

[x+y+z for x, y, z in zip(a, b, c)]

您最初的尝试产生了 Cartesian product三个名单中。存在 a helper function用于 itertools 模块中的笛卡尔积。

关于python - 我应该如何使用列表理解重写这个 map() 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23928941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com