我有以下for循环和if条件。我想使用Python的列表理解将其更改为一行代码。但是,我不知道为什么它不起作用,它说语法错误,'^'指向if语句。

原版的:

for i in range(len(lines)):
        if (lines[i].find('('))!=-1:
            lines[i] = lines[i][0:(lines[i].find('(')-1)]


变成:

lines = [[lines[i][0:(lines[i].find('(')-1)]] for (i in range(len(lines))) if ((lines[i].find('('))!=-1)]


我只想使用列表理解方法,据说这是python的功能之一。我没有编程经验,希望能学习一些新知识。谢谢你的帮助,朋友们!

最佳答案

您可以尝试以下方法(看起来更干净):

[lines[i][0:lines[i].index('(')-1] if '(' in lines[i] else lines[i] for i in range(len(lines))]


因此,它说do trimming if ( is in the line else leave as it is for each line

关于python - 使用if和for循环进行列表理解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45180351/

10-15 18:43