列表压缩不返回空列表值

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

列表理解的一般形式是:

[<map expression> for <name> in <sequence expression> if <filter expression>]

示例代码:

subsets = [[]]
n = 1
[s + [n] for s in subsets]

预期输出:

[[[], 1]]

实际输出:

[[1]]

为什么s空列表在列表理解中的输出之前被过滤?如果我在序列表达式之后有一个if statement,那么它将作为输出的过滤器。如果将其添加到一个空列表中,则会返回下面的代码,这很有意义。显然,我缺少列表理解的基本知识。

subsets + [1]
>>> [[], 1]
python list-comprehension
1个回答
0
投票
subsets=[[[]]]
[s + [n] for s in subsets]
© www.soinside.com 2019 - 2024. All rights reserved.