尝试使用地图或列表推导式扁平化列表列表时获得额外的 Nones 行,为什么?



lol = [[7, 1, 0], [10, 2, 5], [6, 5, 9], [9, 9, 9], [1, 23, 12]]

当我尝试使用地图和列表推导将其展平并尝试在单独的行中打印出来时,我在末尾会得到一行额外的包含 Nones 的行,为什么?

Option 1 : >>> list(map(lambda x : print(x),[' '.join(map(str,triples)) for triples in lol]))
Option 2 : >>> list(map(lambda x : print(x) , list(map(lambda x : ' '.join(map(str,x)),lol))))

在这两种情况下,我得到的输出是:

7 1 0
10 2 5
6 5 9
9 9 9
1 23 12
[None, None, None, None, None]

为什么最后多了一行"无"?

它不是你正在打印的东西,而是你正在存储的东西。

您首先打印所有元素,然后存储 print 语句的输出,该输出为 None

for triples in lol: print(' '.join(map(str,triples))) # if you just want to print
lolz = [' '.join(map(str,triples)) for triples in lol] # if you just want to store
print(lolz)

最新更新