第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么'.sort()'導(dǎo)致列表在Python中為'None'?

為什么'.sort()'導(dǎo)致列表在Python中為'None'?

慕的地6264312 2019-09-27 15:34:03
我正在嘗試對(duì)的Python列表進(jìn)行排序int,然后使用該.pop()函數(shù)返回最高的列表。我嘗試過以不同方式編寫方法:def LongestPath(T):        paths = [Ancestors(T,x) for x in OrdLeaves(T)]    #^ Creating a lists of lists of ints, this part works    result =[len(y) for y in paths ]    #^ Creating a list of ints where each int is a length of the a list in paths    result = result.sort()    #^meant to sort the result    return result.pop()    #^meant to return the largest int in the list (the last one)我也嘗試過def LongestPath(T):    return[len(y) for y in [Ancestors(T,x) for x in OrdLeaves(T)] ].sort().pop()在這兩種情況下,.sort()都會(huì)導(dǎo)致列表變?yōu)镹one(沒有.pop()功能并返回錯(cuò)誤)。當(dāng)我刪除.sort() 它時(shí),它工作正常,但int由于列表未排序,因此不會(huì)返回最大的值。
查看完整描述

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)行排序并返回它。


查看完整回答
反對(duì) 回復(fù) 2019-09-27
  • 3 回答
  • 0 關(guān)注
  • 3388 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)