Понимание синтаксиса списочных представлений (и вложенных LC) - PullRequest
0 голосов
/ 27 декабря 2018

Это работает:

allDasTickets = ["9255955", "9255958", "9255960", "9255977"]
[[j for j in allDasTickets if x != j] for x in allDasTickets]

['9255958', '9255960', '9255977']
['9255955', '9255958', '9255977']
['9255958', '9255960', '9255977']
['9255955', '9255958', '9255960']

Но это не так:

allDasTickets = ["9255955", "9255958", "9255960", "9255977"]
[for x in allDasTickets [j for j in allDasTickets if x != j]]
File "<stdin>", line 1
[for x in allDasTickets [j for j in allDasTickets if x != j]]
   ^

1 Ответ

0 голосов
/ 27 декабря 2018

Для списочных представлений синтаксис:

[ <something> for elem in sequence]

Где <something> сам может быть списочным пониманием.В то же время для понимания вложенных циклов (но не вложенных списков) синтаксис выглядит следующим образом:

[<something> for elem in outerseq for elem2 in innerseq]

и т. Д.

...