python 检查列表中的字符串?

标签 python list

我正在尝试遍历一个列表,检查列表中的每个字符串是否有一个字符。

test = [str(i) for i in range(100)]

for i in test:
    if '0' or '4' or '6' or '8' in str(i):
        test.remove(i)

我认为这会很好,但是,列表是这样的:

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

“2”被移除但“41”没有被移除?我注意到它只有偶数,但不知道为什么。

最佳答案

您的代码有两个问题。首先是您在迭代列表时修改列表。第二个是您以错误的方式使用了 or 运算符——if 语句中的条件将始终为 True

这是一个固定版本:

test = [i for i in range(100) if set("0468").isdisjoint(str(i))]

关于python 检查列表中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11055809/

相关文章:

python - 如何在 Delphi 应用程序中创建图形

list - 将哈希表转换为 OCaml 中的对(键,值)列表

python - 向 Pandas DataFrame 添加额外索引

大列表的 C# Linq 性能

c# - 查找两个列表之间的差异数

c# - 具有后备属性的列表没有获得附加值

list - 如何按以下方式组合非对称列表

Python session 不适用于多个请求

python - 服务器重启后守护进程的 PID 文件挂起

python - 如何使用 virtualenv 和 Django 隐藏我的 secret_key?