首页 > 解决方案 > 理解列表推导(和嵌套 LC)的语法

问题描述

这有效:

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]]
   ^

标签: pythonpython-3.xsyntaxlist-comprehension

解决方案


对于列表推导,语法是

[ <something> for elem in sequence]

where<something>本身可以是列表理解。同时,对于嵌套循环(但不是嵌套列表)推导式,语法是

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

以同样的方式,依此类推。


推荐阅读