Python从2.x到3.x的变化

2019-02-25  本文已影响0人  晨语凡心

一: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中的长整型类似

上一篇下一篇

猜你喜欢

热点阅读