Синтаксическая ошибка для понимания списка в Python, не может понять, что не так - PullRequest
0 голосов
/ 13 марта 2020

Вот фрагмент упрощенного кода для проблемы, над которой я работаю. Я не мог понять, что не так с синтаксисом для понимания списка здесь. Кто-нибудь может помочь?

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' должен go после оператора 'for'. Тем не менее, я также осознаю причудливую вещь, заключающуюся в том, что если в операторе 'if' также содержится оператор 'else', то он может go перед оператором 'for', как в примере ниже. Не уверен, что за этим стоит логика c.

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

Есть мысли по этому поводу?

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Должно быть примерно так:

 for i in range(10):
   a = [j for j in range(100) if j == i]
   print(a)
0 голосов
/ 13 марта 2020

Не уверены в своей точной цели, но попробуйте:

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