为何我的Python代码会额外输出[None, None, None, None]?
为什么会出现
[None, None, None, None] 咱们一步步拆解代码逻辑:
zip(a, b, c)会将三个列表对应位置的元素打包成元组,最终生成4个元组:(1, 2, 3)、(2, 3, 4)、(3, 4, 5)、(4, 5, 6)。map(lambda x: print(x), zip(a, b, c))会对每个元组执行lambda函数:lambda里的print(x)会先打印出元组内容,但print函数本身的返回值是None——这是Python的默认规则,所有没有显式return语句的函数(包括print)执行后都会返回None。list(map(...))会把map迭代器中的所有元素(也就是每次lambda执行后返回的None)收集成一个列表,得到[None, None, None, None]。- 最后外层的
print()把这个列表直接打印出来,所以就出现了最后那行输出。
如果不想看到这个列表,你可以去掉外层的print(list(...)),直接写for item in zip(a,b,c): print(item),这样只会打印出四个元组,不会出现None列表。
内容的提问来源于stack exchange,提问作者Chinmay
相关产品推荐
相关产品推荐

