3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
這個(gè)
result = result.sort()
應(yīng)該是這個(gè)
result.sort()
Python中的一個(gè)約定是變異序列的方法返回None。
考慮:
>>> a_list = [3, 2, 1]
>>> print a_list.sort()
None
>>> a_list
[1, 2, 3]
>>> a_dict = {}
>>> print a_dict.__setitem__('a', 1)
None
>>> a_dict
{'a': 1}
>>> a_set = set()
>>> print a_set.add(1)
None
>>> a_set
set([1])
Python的“設(shè)計(jì)和歷史記錄”常見問題解答給出了此設(shè)計(jì)決策的依據(jù)(相對(duì)于列表):
為什么不list.sort()返回排序列表?
在性能很重要的情況下,僅復(fù)制列表以進(jìn)行排序?qū)⒑芾速M(fèi)。因此,list.sort()對(duì)列表進(jìn)行排序。為了提醒您這一事實(shí),它不會(huì)返回已排序的列表。這樣,當(dāng)您需要排序的副本但還需要保留未排序的版本時(shí),您不會(huì)被誤覆蓋列表。
在Python 2.4中,添加了一個(gè)新的內(nèi)置函數(shù)– sorted()。此函數(shù)從提供的可迭代對(duì)象創(chuàng)建一個(gè)新列表,對(duì)其進(jìn)行排序并返回它。
添加回答
舉報(bào)