Rel*_*der 2 python list-comprehension map python-3.x
>>> 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]
Run Code Online (Sandbox Code Playgroud)
尝试:
>>>[(x+y+z) for x in a for y in b for z in c]
Run Code Online (Sandbox Code Playgroud)
但是添加了这些列表中每个可能的元素组合(不仅仅是先加第一,第二和第二等):
[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]
Run Code Online (Sandbox Code Playgroud)
这有可能吗?谢谢.
你正在寻找zip,在锁定步骤中驱动多个迭代':
[x+y+z for x, y, z in zip(a, b, c)]
Run Code Online (Sandbox Code Playgroud)
您的原始尝试产生三个列表的笛卡尔积.模块中存在笛卡尔积的辅助函数itertools.
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |