为什么(dictionary.keys()).sort()在python中不起作用?

nic*_*las 3 python sorting

我是Python的新手,无法理解为什么这样的东西不起作用.我也找不到其他地方提出的问题.

toto = {'a':1, 'c':2 , 'b':3}
toto.keys().sort()           #does not work (yields none)
(toto.keys()).sort()         #does not work (yields none)
eval('toto.keys()').sort()   #does not work (yields none)
Run Code Online (Sandbox Code Playgroud)

然而,如果我检查类型,我看到我在列表上调用sort(),那么问题是什么..

toto.keys().__class__     # yields <type 'list'>
Run Code Online (Sandbox Code Playgroud)

我有这个工作的唯一方法是添加一些丑陋的临时变量

temp = toto.keys()
temp.sort()
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么,必须有一个更好的方法来做到这一点.

Mat*_*rog 6

sort()对列表进行排序.它返回None以防止您认为它仅保留原始列表并返回它的已排序副本.


CTT*_*CTT 6

sorted(toto.keys())
Run Code Online (Sandbox Code Playgroud)

应该做你想做的.您正在使用的排序方法就地排序并返回None.