提问人:malavi pande 提问时间:6/17/2023 最后编辑:Tim Robertsmalavi pande 更新时间:6/17/2023 访问量:26
为什么打印一些内置方法返回 VALUES,而打印一些 NONE?
Why printing some inbuilt methods return VALUES while some NONE?
问:
我正在尝试了解以下代码片段之间的输出差异:
arr = [1, 2, 3, 4, 5]
print(arr.sort()) // Output: None
print(arr.pop()) // Output: 5
在第一个片段中,我知道它被调用,它对列表进行排序。但是,当我尝试打印排序列表时,它会输出 .在第二个代码片段中,我理解调用它是为了删除并返回列表的最后一个元素,即 .arr.sort()
None
arr.pop()
5
有人可以向我解释为什么第一个片段输出而不是排序列表,并确认我对第二个片段输出的理解吗?None
答:
0赞
Amiel
6/17/2023
#1
该方法就地更改列表的值并返回值 。换言之,与返回感兴趣值的方法相反,您不会通过将其结果分配给变量来使用此方法。相反,它会更改列表本身。它在你的情况下是不可见的,因为列表已经排序,但如果你使用未排序的列表:list.sort
None
arr = [5, 1, 2, 3, 4]
print(arr.sort()) // Output: None
print(arr) // Output: [1, 2, 3, 4, 5]
您可以注意到,即使该方法是在 a 中调用的,列表也已更改(这有时可能会导致难以找到的错误)。print
该方法不同,因为它就地更改列表(删除给定索引中存在的项目)并返回此项目 - 在您的例子中为 5。因此打印 5.list.pop
print(arr.pop())
评论