【发布时间】:2013-05-02 13:11:18
【问题描述】:
我是 Python 的初学者,我试图让下面发布的 Python 代码工作,但不幸的是,它没有给我预期或正确的结果。
我正在尝试使用内置方法 sort() 对包含数字的简单列表进行排序,在执行程序后我得到 NONE 作为结果。
请指导我解决这个问题。
Python 代码
a=[7,4,0,-5,30,2,11,84,6]
b=a.sort()
print(b)
【问题讨论】:
标签: python
我是 Python 的初学者,我试图让下面发布的 Python 代码工作,但不幸的是,它没有给我预期或正确的结果。
我正在尝试使用内置方法 sort() 对包含数字的简单列表进行排序,在执行程序后我得到 NONE 作为结果。
请指导我解决这个问题。
Python 代码
a=[7,4,0,-5,30,2,11,84,6]
b=a.sort()
print(b)
【问题讨论】:
标签: python
函数.sort() 不返回它返回None 的列表对象。
如果你看一下这个例子,你可以看到 a 在没有分配给 b 的情况下是如何排序的。
>>> a=[7,4,0,-5,30,2,11,84,6]
>>> a.sort()
>>> a
[-5, 0, 2, 4, 6, 7, 11, 30, 84]
【讨论】:
a.sort() 对a 进行排序并返回None。试试这个:
a=[7,4,0,-5,30,2,11,84,6]
a.sort()
print(a)
【讨论】:
sort() 是一个 inplace 排序。它对列表进行排序,但不返回它(它实际上返回None)。
>>> a=[7,4,0,-5,30,2,11,84,6]
>>> a.sort()
>>> a
[-5, 0, 2, 4, 6, 7, 11, 30, 84]
要单独获取排序列表,请使用sorted():
>>> a=[7,4,0,-5,30,2,11,84,6]
>>> b = sorted(a)
>>> b
[-5, 0, 2, 4, 6, 7, 11, 30, 84]
>>> a
[7, 4, 0, -5, 30, 2, 11, 84, 6]
【讨论】:
list.sort 对列表进行就地排序,从而返回None
改为使用返回排序列表的sorted函数
b = sorted(a)
【讨论】:
a=[…]a.sort()print a