我有一本字典:
{'three': 3, 'two': 2, 'one': 1}
我需要使用这个字典中的键元组进行一些操作,所以我正在尝试使用这段代码:
list(D.keys()) # now I need to sort it
list(D.keys()).sort() # why such construction returns None? (Use print() to track it)
我正在使用VS 2013,当我打印list(D.keys()).
时,IntelliSense会提示我排序方法
那么我错过了什么?
p.s这样的建设很有效:
L = list(D.keys())
L.sort()
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
.sort()
方法修改了列表并返回None
。要在方法返回的列表上使用它,您需要将列表保存在变量中。
L = list(D.keys())
L.sort()
print L
如果要删除临时变量,请使用sorted
:
print sorted(D.keys())
答案 2 :(得分:1)
如果问题是如何修复你的代码,John和minitech的答案都涵盖了它。
如果问题是“为什么list.sort
返回None
?”,那么Guido将他的推理解释为Python-Dev邮件列表sort() return value。
总之,这是为了防止您将对象x
的一系列修改写为x.sort().compress().spiflicate()
你可能不同意Guido的首选风格,但AFAIK他诚实地代表了他的理由,并在其他地方说过类似的事情。所以这就是Python的原因,没有其他动机。