【问题标题】:Understanding Python 3 lists printing None value for each element了解 Python 3 列出每个元素的打印 None 值
【发布时间】:2013-07-16 10:21:58
【问题描述】:

作为 Python 的新手,我正在打印版本 3 中列表的所有元素,经过全面研究后,我找不到这种行为的解释。

但是,我知道每个函数都必须返回一些值,并且当它没有定义时,函数返回“Null”(或 Python 中的“None”)。但是为什么在这种情况下,在正确打印所有元素后,它会为另一个列表中的每个元素打印“无”?

>>> a_list = [1,2]
>>> a_list
[1, 2]
>>> [print(f) for f in a_list]
1
2
[None, None]

【问题讨论】:

    标签: python python-3.x list


    【解决方案1】:

    Noneprint函数的返回值。

    当你的意思是for f in a_list: print(f)时,不要使用[print(f) for f in a_list]

    【讨论】:

      【解决方案2】:

      正如其他人所提到的, print() 不返回任何内容。因此,没有打印。如果你想知道为什么元素被正确打印,然后是 2 个None,这是因为函数是如何工作的。

      一个函数被调用,一旦里面的每条语句都被执行,一个值就会被返回,但前提是函数返回了一些东西。

      在您的情况下, print(f) 是对 f 上的 print 函数的调用, print 已执行,这意味着它将所需的值打印到控制台,然后返回其值,即 None,因为 print( ) 不返回任何东西。当您在 shell 中工作时,每个表达式都会直接打印出来,因此,您会得到两个预期的元素以及 None's。

      来到解决方案,您可以使用其他答案中提到的简单循环

      输出:

      1
      2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-16
        • 1970-01-01
        • 2022-01-25
        • 2013-01-27
        • 1970-01-01
        • 2018-11-09
        相关资源
        最近更新 更多