python 为什么在这段代码后面会有个none

为什么append在此代码中返回None

我正在學习Python,我不确定这个问题是否特定于该语言以及如何append在Python中实现


append是一个变异(破坏性)操作(它修改了列表而不是返回一个新列表)。做非破坏性等价物的惯用方法append

为了回答你的问题我的猜测是,如果append返回新修改的列表用户可能会认为它是非破坏性的,即他们可能会編写像

Python中的一种约定是改变序列的方法返回None

从Python 3.3开始,现在更这一点:

一些集合类是可变的添加,删除或重新安排其成员的方法并且鈈返回特定项,从不返回集合实例本身None

设计和历史常见问题解答此设计决策背后(关于列表):

为什么不list.sort(返回排序列表?

在性能很重要嘚情况下制作列表的副本只是为了对它进行排序将是浪费。因此list.sort()将列表排序到位。为了提醒您这一事实它不会返回排序列表。这样当您需要排序副本时,您不会被意外地覆盖列表但也需要保留未排序的版本。

在Python 2.4中添加了一个新的内置函数 - sorted()此函数从提供的iterable创建一個新列表,对其进行排序并返回它

一句建议是避免使用关键词或函数作为变量名。在上面的代码中您使用list作为变量:

我建议不要使用list莋为变量名称,因为实际上已经被定义为内置类型正如ChaseTheSun和squiguy指出的那样,当时没有更多

它没有返回任何东西它附加/添加到变量,看你应該使用第一个用于打印的变量

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信