Skip to main content
 首页 » 编程设计

python之列表理解表达式错误

2025年05月04日13duanxz

我正在努力解决这个问题,

lst = [['1','2','3'], ['1','2','3','4']] 
 
print [ls for ls in lst if (len(ls)==3) ls.insert(2,"Null")] 

但它给出了以下错误,

 [ls for ls in lst if (len(ls)==3) ls.insert(2, 'null')] 
                                       ^ 
SyntaxError: invalid syntax 

请您参考如下方法:

使用列表推导来解决副作用是个坏主意。你应该为你的目的使用 Loop

首先你的语法错误

[ls for ls in lst if (len(ls)==3) ls.insert(2, 'null')] 

应该已经写好了(让我们忽略坏主意部分)

[ls.insert(2, 'null')  for ls in lst if (len(ls)==3) ] 

但是,您最终会创建一个无资源列表,这是一种资源浪费。

相反,你应该这样做

for ls in lst: 
    if len(ls) == 3: 
        ls.insert(2, 'null')