美文网首页
Python从2.x到3.x的变化

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

作者: 晨语凡心 | 来源:发表于2019-02-25 17:27 被阅读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中的长整型类似

    相关文章

      网友评论

          本文标题:Python从2.x到3.x的变化

          本文链接:https://www.haomeiwen.com/subject/yvbgyqtx.html