一:raw_input()與input()
python 2.x中的raw_input在3.x中被重命名為input,而2.x中的input則被移除了。所以3.x中用input讀取用戶的輸入時返回的統統為字符串。
二:sort,sorted
python 2.x中sort和sorted可自定義排序方式,只需給參數‘cmp’傳入一個自定義的比較函數;而3.x中則需給參數‘key’傳入一個函數,該函數指定根據那個值去排序,如:
>>> 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中若要先根據第一個值升序排序,相同時再根據第二個值降序排序,則參照如下代碼:
sorted(list, key=lambda x: (x[0], -x[1]))
三:range, xrange
在python2中,range生成一個list,而xrange生成一個iterator。要生成很大的數字序列的時候,用xrange會比range性能優很多,因為不需要一上來就開辟一塊很大的內存空間。
在python3中,取消了 range 函數,而把 xrange 函數重命名為 range,所以現在直接用 range 函數即可,生成的是iterator。
四:判斷字典是否含有某個鍵
Python 3.X 里不包含 has_key() 函數,被 __contains__(key) 替代:
五:整型和長整型
python2有非浮點數準備的int和long類型。int類型最大值不能超過sys.maxint,而且這個最大值是平臺相關的??梢酝ㄟ^在數字的末尾附上一個L來定義長整型,顯然,它比int類型表示的數字范圍更大。在python3里,只有一種整數類型int,大多數情況下,和python2中的長整型類似