Python中列表理解的语法错误,无法完全弄清楚出什么问题

问题描述 投票:0回答:2

这是我正在解决的问题的一段简化代码。我在这里无法弄清楚列表理解的语法出了什么问题。谁能帮忙?

for i in range(10):
    a = [j if j == i for j in range(100)]



File "<ipython-input-19-4bf2e143eb37>", line 2
    a = [j if j == i for j in range(100)]
                       ^
SyntaxError: invalid syntax

编辑:显然我在上面的示例中翻转了语法,因为'if'语句应该放在'for'语句之后。但是,我在这里也意识到了一个奇怪的问题,如果'if'语句也包含'else'语句,则它可以在'for'语句之前,如下例所示。不知道这背后是否有任何逻辑。

l = [22, 13, 45, 50, 98, 69, 43, 44, 1]
[x+1 if x >= 45 else x+5 for x in l]

对此有何想法?

python syntax list-comprehension
2个回答
0
投票

不确定您的确切目标,但请尝试:

for i in range(10):
    a = [j for j in range(100) if j == i ]

0
投票

应该是这样的:

 for i in range(10):
   a = [j for j in range(100) if j == i]
   print(a)
© www.soinside.com 2019 - 2024. All rights reserved.