如何从python列表中删除仅零位数字?

阿扎姆萨

我只想0从清单中删除

>>> mylist = [0, 1, None, 2, False, 1, 0]

他们都缺少假物品

>>> list(filter(lambda x: x != 0, mylist))
[1, None, 2, 1]  # missing False

>>> list(filter(lambda x: x != 0 and x is not type(int), mylist))
[1, None, 2, 1] # missing False

>>> list(filter(lambda x: x != 0 and x is not type(False), mylist))
[1, None, 2, 1]

>>> list(filter(lambda x: x != 0 and x is not False, mylist))
[1, None, 2, 1]

所需的输出:

[1, None, 2, False, 1]

谢谢您的帮助。

奥斯汀

Pythonbool是0的子类,int并且False类似于0。因此,按相等进行比较不会产生所需的输出。

您可以使用(请注意,这是最不推荐的选择,理想情况下您不应使用):

>>> list(filter(lambda x: x is not 0, mylist))
[1, None, 2, False, 1]

您应该使用什么:

正如评论中所讨论的,身份检查可能无法在所有情况下进行。一种更可行的方法是将相等检查与类型检查一起使用为:

>>> list(filter(lambda x: x != 0 or isinstance(x, bool), mylist))
[1, None, 2, False, 1]

就个人而言,不是filterand的粉丝lambda,我将使用列表理解,这将证明速度更快:

>>> [x for x in mylist if x != 0 or isinstance(x, bool)]
[1, None, 2, False, 1]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

qdap软件包:将零位数字转换为“零”字的错误

在没有零位数字的数字系统之间来回转换

从小数位数中删除无用的零位,并在PHP中删除大于2的小数位数

如何在空白列表中“插入”到非零位置?

如何跳过内置int中的尾随零位?

删除零位并固定对齐

计算32位整数列表中的非零位

如果列表包含数字最后一个数字,如何删除列表中的最后一位数字

在JavaScript中,当小数点后仅返回一位数字时,如何显示第二个零?

如何在python中创建4位数字的密码?

仅在Java中仅删除一位数字时,才删除字符串中的最后一位数字

自动将小数点后的零位数可变的浮点数舍入到第一个非零数字

Python:在不使用.zfill的情况下在一位数字中添加零

在R的数据框中删除列表中<4位数字

如何在Matplotlib中反转轴并设置极坐标图的零位置?

如何在Z3中对扩展位向量进行零位/符号化?

在python中的余弦波的零位置放置标记

如何从字符串中间的数字中删除最后一位数字?

仅当Java中只有一位数字时才删除最后一位数字

如何从数字数组列表中删除前导零?

如何在逗号(。)后仅允许2位数字和1位数字?

在Powershell中,如何从电子邮件主题行中仅提取7位数字?

除前导零外的整数形式的零位数

如何从4位数字列表中查找最频繁的渐进数字

如何使用jquery-step在每个步骤中仅验证最多3位数字

如何在HTML文本框中仅允许4位数字?

如何从Excel单元格中仅提取5位数字字符串?

如何“舍入”数字,通过在 javascript 中的第二位数字后面放零

如何找到给定范围内以零位十进制数字结尾的浮点值?