为什么Python的字符串列表排序功能不起作用

时间:2019-11-13 06:09:38

标签: python

print(['at', 'from', 'hello', 'hi', 'there', 'this'].sort())

返回

None

1:https://thispointer.com/python-how-to-sort-a-list-of-strings-list-sort-tutorial-examples/
2:How to sort a list of strings?

我看到了两个例子,但是为什么不起作用?

2 个答案:

答案 0 :(得分:2)

sort()没有返回值,因此它返回默认值None。它会修改原始列表,因此您需要在列表名称上使用它

l = ['at', 'from', 'hello', 'hi', 'there', 'this']
l.sort()
print(l)

如果您不想修改列表,则可以使用sorted()

创建排序后的副本
l = ['at', 'from', 'this', 'there', 'hello', 'hi']
print(sorted(l)) # prints sorted list ['at', 'from', 'hello', 'hi', 'there', 'this']
print(l) # prints the original ['at', 'from', 'this', 'there', 'hello', 'hi']

答案 1 :(得分:0)

我认为这与功能sort()及其工作位置有关。 sort()仅对可变数据类型起作用,该数据类型必须是列表或类似的东西。它没有返回值,它仅修改数据类型。这就是为什么它将返回经过排序的列表的原因,因为该列表已通过sort()函数传递。当您运行该程序时:

>>> i = ['at', 'from', 'hello', 'hi', 'there', 'this']
>>> i.sort()
>>> print(i)
['at', 'from', 'hello', 'hi', 'there', 'this']
>>> 

由于sort()函数正在被调用到一个变量,所以它工作正常。