python - 过滤0的嵌套列表
问题描述
我正在尝试过滤嵌套的值列表以删除 0,这样我就可以计算没有 0 的最小值。
data = [[0, 723, 124,],[4084, 208, 32, 4 ], [ 413, 277, 0, 154], [], [211, 132,0, 54]]
我努力了:
for i in data:
new_values = []
mins = min((i), default=0)
if mins == 0:
new_values = (filter(lambda x: x !=0, data))
print(new_values)
它给了我:
[]
<filter object at 0x040D4130>
[]
[]
[]
[]
<filter object at 0x040D40F0>
[]
[]
[]
[]
<filter object at 0x040D4130>
预期代码:
data = [[723, 124,],[4084, 208, 32, 4 ], [ 413, 277, 154], [], [211, 132, 54]]
预期输出:
mins = (124, 4,154,0,54)
解决方案
Vivek Sable答案的一个简单变体是
list(map(lambda x: min((val for val in x if val != 0), default=0), data))
推荐阅读
- python - 索引嵌套字典中的值
- google-apps-script - 生成位于范围内单元格内的随机值
- go - 使用 Golang、Revel 处理预检请求
- python-3.x - 如何将分组数据帧多级索引转换为数据字典
- database - Laravel - 将多个变量传递给视图
- sql - 使用左连接执行 MS Access 删除查询时出错
- php - Wordpress 自定义 do_parse_request 总是返回 404
- shell - 包含在 powershell 中不起作用的字符串
- r - 从语料库中删除特殊字符
- android - Google 登录按钮 Android 理想的从右到左的理想行为