首页 > 解决方案 > 过滤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)

标签: pythonnestedminimum

解决方案


Vivek Sable答案的一个简单变体是

list(map(lambda x: min((val for val in x if val != 0), default=0), data))

推荐阅读