Skip to main content
 首页 » 编程设计

python之如果两个 for 循环之间的条件作为列表理解

2025年05月04日12me-sa

我正在尝试编写以下代码作为列表理解

l=[] 
for x in range(1,10): 
    if x<5: 
        for j in range(1,3): 
            l.append(1) 
    else: 
        l.append(x**2) 
print(l) 

结果是

[1, 1, 1, 1, 1, 1, 1, 1, 25, 36, 49, 64, 81] 

我试过了

l=[] 
l=[(1 for j in range(1,3)) if x<5 else x**2 for x in range(1,10)] 
print(l) 

但我没有得到正确的结果。有什么想法吗?

请您参考如下方法:

由于您对不同范围的列表有不同的规则,您可以这样做:

[1 for j in range(1,3) for x in range(1,5)] + [x**2 for x in range(5,10)]  

注意:永远不要忽视代码的可读性。