hziyan 发表于 2023-1-16 21:30:53

这个推导式最后为什么会打印一个空列表

,"FishC")]

运行了这个推导式,打印结果为:

(1, 'F')
(2, 'i')
(3, 's')
(4, 'h')
(5, 'C')


如题,为什么最后会打印一个只有None的列表?
按照for的规律,i应该到(5, 'C')就会结束,为什么会多几个None出来很是奇怪啊

hziyan 发表于 2023-1-16 21:33:40

又发现一个问题,如果我给这个推导式赋一个变量就不会有问题了。

a = ,"FishC")]
运行结果:
(1, 'F')
(2, 'i')
(3, 's')
(4, 'h')
(5, 'C')

为什么呢?{:10_257:}

tommyyu 发表于 2023-1-16 21:34:18

上面的五行全部都是print打印出的内容,最后一行是这个列表的值,由于print函数的返回值是None,所以这个列表的所有值都是None,也就出现了这一行内容

isdkz 发表于 2023-1-16 21:34:21

因为前面的都是print(i)打印出来的,最后面那个才是列表推导式得到的,print(i) 的返回值是 None,

所以列表里面就放了 5 个None,你可以试试这样:

print(,"FishC")])
页: [1]
查看完整版本: 这个推导式最后为什么会打印一个空列表