小编Lam*_*amp的帖子

if 语句中的列表理解不起作用

我正在尝试浏览目录中的所有文件并对具有特定文件名的文件执行某些操作。出于某种原因,当我使用列表理解时 if 语句不起作用,并且所有迭代似乎都进入 if 语句:

for filename in os.listdir(somepath):
    if (str(i_test) in filename for i_test in range(15,20)):
        do something
Run Code Online (Sandbox Code Playgroud)

如果我在 if 语句中明确写入数字,则 if 语句按预期工作:

for filename in os.listdir(somepath):
    if '15' in filename or ('16' in filename) or ('17' in filename) or ('18' in filename) or ('19' in filename):
        do something
Run Code Online (Sandbox Code Playgroud)

我找不到我在列表理解中搞砸的地方。

python for-loop if-statement list-comprehension python-3.x

1
推荐指数
1
解决办法
107
查看次数