python-3.x - 我想结合 map & lambda 来计算列表中满足给定条件的项目数
问题描述
我想结合 map & lambda 来计算列表中满足给定条件的项目数。我尝试了以下代码,但出现错误:
<lambda>() missing 1 required positional argument: 'y'
我尝试的代码如下:
x = [3,7,6,4,2,8,3,4,6,3,6,6,4,6,3,3,6,4,7,7,4]
y = 4
z = map(lambda x, y: [i>=y for i in x], (x, y))
print (sum(z))
预期的输出将是 10(因为列表中的 10 个值大于 4)。
解决方案
例如使用 map 和 lambda。
x = [3, 7, 6, 4, 2, 8, 3, 4, 6, 3, 6, 6, 4, 6, 3, 3, 6, 4, 7, 7, 4]
y = 4
z = map(lambda x: (1 if x > y else 0), x)
print(sum(z))
请注意,您不能y
在 map/lambda 中使用,因为您不能在int
.
如果你绝对想使用第二个参数,你必须传递y
它以便它是可迭代的:
z = map(lambda x, y: (1 if x > y else 0), x, [y] * len(x))
print(sum(z))
它有效,但我认为这不是一个好习惯。
推荐阅读
- versioning - 重新发布工件时,de 版本应该如何看待
- bash - 查询在 bash 中为 psql 返回 null
- maven - StormCrawler /Elastic Search Apache Tika 用于解析 PDF。运行拓扑时出错
- postgresql - 在 Springboot 应用程序上同步 Elasticsearch Postgresql
- java - 在 Java8 中使用流重写
- c - perf_event 报告意外的缓存未命中量:访问数组中的 N 个元素会导致 2N 次缓存未命中
- python - 尝试从列表中删除重复时位于位置打印语句的 Python 生成器对象
- r - 用数字替换文本值
- gcloud - GCloud 构建 YAML 替换不起作用
- ios - 如何在我们应用快照时停止 UICollectionViewDiffableDataSource 滚动集合视图?