从列表列表中删除所有匹配的值

马林莎

我有以下列表对象列表

myList = [[123,0.0,345,0.0,0.0,0.0],
 [45,0.0,0.0,0.0],
 [67,8,0.0,5,6,7,0.0]

我想从此列表中删除所有零。

我遵循了这个问题,并按如下所示进行编码。

myList = list(filter(lambda j:j!=0,myList[i]) for i in range(len(myList)))

但是我正在获取过滤器对象列表作为输出。代码中有什么错误。

[<filter object at 0x7fe7bdfff8d0>, <filter object at 0x7fe7a6eaaf98>, <filter object at 0x7fe7a6f08048>,
Devesh库玛·辛格

您忘记了使用强制转换内部filter函数,list执行此操作时,代码将按预期工作:)

myList = [[123,0.0,345,0.0,0.0,0.0],
 [45,0.0,0.0,0.0],
 [67,8,0.0,5,6,7,0.0]]

#Cast inner filter into a list
myList = list(list(filter(lambda j:j!=0,myList[i])) for i in range(len(myList)))
print(myList)

输出将是

[[123, 345], [45], [67, 8, 5, 6, 7]]

另外一种更简单的理解方式是使用列表理解

myList = [[123,0.0,345,0.0,0.0,0.0],
 [45,0.0,0.0,0.0],
 [67,8,0.0,5,6,7,0.0]]

#Using list comprehension, in the inner loop check if item is non-zero
myList = [ [item for item in li if item != 0] for li in myList ]
print(myList)

输出将是

[[123, 345], [45], [67, 8, 5, 6, 7]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用jq从列表列表中获取所有值

从列表列表中删除所有具有特定项目的列表

如何优化代码以从列表列表中删除所有列表中的n个位置

删除字典列表中的所有值

从列表中删除所有出现的值?

在列表列表的所有列表中查找重复项并将其删除

删除列表列表中的所有重复项(不包括原始列表)

从列表列表中删除所有空列表 Ocaml

在列表列表中的每个列表中删除重复值

處理列表列表,查找具有匹配最後一個值的所有列表?

通过 powershell 从分发列表列表中删除所有现有用户,Exhcange 2010

在列表列表中匹配

从R中列表列的所有列表中删除特定数字

将列表列表中的所有列表相乘

如何删除双向链接列表中与某个值匹配的所有项目?

如何删除不唯一的列表列表中的所有项目?

如何从Python列表列表中删除所有none元素

使用python在列表列表中查找匹配的值

如何在Python中从列表列表中删除值

当列表列表中的所有项目等于一个值时,如何设置if语句?

Python格式化列表列表中的所有值

从字典值(列表列表)中删除元素

在第一个 NA 出现后删除列表列表中的所有列表位置 (R)

将列表列表中的所有NULL值替换为其他内容/具有不同长度的列表列表

获取与时间序列中的条件匹配的所有值的列表

在逗号分隔的列表中列出所有匹配的值?

从列表列表中删除子列表

从列表列表中删除相反的列表

从列表列表中删除列表Python