【发布时间】:2017-05-17 00:04:51
【问题描述】:
所以,我在 Python 中从列表中删除非整数(非常令人兴奋的东西)。我遇到了以下代码的问题,我似乎无法解决:
list_a = ["a", 1, 2, 3, False, [1, 2, 3]]
for item in list_a:
if not isinstance(item, int):
list_a.remove(item)
我正在尝试删除列表中的所有非 int 项,但上述代码并未删除 False。
我想要什么:[1, 2, 3]
我得到了什么:[1, 2, 3, False]
任何解决此问题的帮助将不胜感激!
【问题讨论】:
-
False为值,为0,为整数!
-
False在内部表示为整数 0。实际上False==0是True- 但False is 0不是。使用运算符is删除False。 -
其他问题:您在迭代列表时在列表中移动项目。不要那样做。建立一个新列表。
标签: python list python-3.x boolean