一: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)整型類似