Python從2.x到3.x的變化

一:raw_input()與input()

python 2.x中的raw_input在3.x中被重命名為input,而2.x中的input則被移除了。所以3.x中用input讀取用戶的輸入時(shí)返回的統(tǒng)統(tǒng)為字符串

二:sort,sorted

python 2.x中sort和sorted可自定義排序方式,只需給參數(shù)‘cmp’傳入一個(gè)自定義的比較函數(shù);而3.x中則需給參數(shù)‘key’傳入一個(gè)函數(shù),該函數(shù)指定根據(jù)那個(gè)值去排序,如:

>>> student_tuples=[... ('john','A',15),... ('jane','B',12),... ('dave','B',10),... ]

>>> sorted(student_tuples,key=lambda student : student[2])# sort by age

Result:[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

在python3.x中若要先根據(jù)第一個(gè)值升序排序,相同時(shí)再根據(jù)第二個(gè)值降序排序,則參照如下代碼:

sorted(list, key=lambda x: (x[0], -x[1]))

三:range, xrange

在python2中,range生成一個(gè)list,而xrange生成一個(gè)iterator。要生成很大的數(shù)字序列的時(shí)候,用xrange會(huì)比range性能優(yōu)很多,因?yàn)椴恍枰簧蟻砭烷_辟一塊很大的內(nèi)存空間。

在python3中,取消了 range 函數(shù),而把 xrange 函數(shù)重命名為 range,所以現(xiàn)在直接用 range 函數(shù)即可,生成的是iterator。

四:判斷字典是否含有某個(gè)鍵

Python 3.X 里不包含 has_key() 函數(shù),被 __contains__(key) 替代:

五:整型和長(zhǎng)整型

python2有非浮點(diǎn)數(shù)準(zhǔn)備的int和long類型。int類型最大值不能超過sys.maxint,而且這個(gè)最大值是平臺(tái)相關(guān)的??梢酝ㄟ^在數(shù)字的末尾附上一個(gè)L來定義長(zhǎng)整型,顯然,它比int類型表示的數(shù)字范圍更大。在python3里,只有一種整數(shù)類型int,大多數(shù)情況下,和python2中的長(zhǎng)整型類似

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容