python - 通过 lambda 将 map 与 zip 结合起来
问题描述
我正在尝试编写一个添加二维向量的函数。我正在尝试组合该map()
函数,使用该函数获取一个列表zip()
(它将压缩 2 个元组)。
这是代码:
a = (1, 2)
b = (3, 4)
c = list(map(lambda x, y: x+y, list(zip(a, b))))
print(c)
所以我看到它的方式,zip(a, b)
返回一个包含以下元组的 zip 对象:(1, 3), (2, 4)。然后将其转换为列表。我收到以下错误:
TypeError:()缺少1个必需的位置参数:'y'
所以我的猜测是 lambda 函数没有在每个元组中取第二个数字。
有没有办法做到这一点?
解决方案
lambda 只有一个参数,例如:
c = list(map(lambda x: sum(x), zip(a, b)))
但是一旦我们使用 sum,我们可以像这样直接映射它:
c = list(map(sum, zip(a, b)))
测试代码:
a = (1, 2)
b = (3, 4)
c = list(map(sum, zip(a, b)))
print(c)
结果:
[4, 6]
推荐阅读
- delphi - Delphi FMX OSX 分段故障 11
- r - 如何使用 R data.table/data.frame 将长字符串拆分/解析为表格数据?
- c# - Wpf 样式 ispressed 属性不会持续
- c++ - 迭代字符串集时没有可行的转换
- javascript - 使用数组没有重复的随机非数字分配
- ios - 如何水平居中动态宽度的collectionView项目?
- swift - Siri 快捷方式:如何通过我的应用检索捐赠的 INInteraction 列表
- python - 如何从列表中删除某些值的对象?
- composer-php - 任何人都可以在 Pantheon 上安装 Drupal 8 Thunder(带 Composer)?
- node.js - @bigcommerce/stencil-cli | 节点 v10.6.0 上的错误