python2和python3部分版本问题总结

python语言有两个版本,python3不能对python2向下兼容,因此两个版本之间存在部分语法差异。现将我目前了解到的部分问题差异总结如下:

1.在python2版本中,d1为字典
keylist = d1.keys()
在python3中,需要进行强制转换
keylist = list(d1.keys())

**2.**python2中有range和xrange,返回的是列表。
但在python3中只有range,range多用作循环,range(0,10)返回一个range对象,如想返回一个list,前面加上list转换;arange是numpy模块中的函数,
使用前需要先导入此模块,arange(3):返回array类型对象。

3.l1,l2为列表,使用zip时,
python2中:zip(l1,l2)得出元组列表
python3中:list(zip(l1,l2))得出元组列表,需要强制转换

4.列表生成器
如:l1 = [1,2,3,4,5]
l2 = (i**2 for i in l1 if i % 2 ==0)
在python2中,l2.next()计算结果;在python3中,next(l2)计算结果。

5.有关pickle问题
在python3中,使用pickle时,文件必须是二进制,如:f1 = open(‘E:/PYTHON/demo/test3.txt’,’wb’)

6.有关map,filter,reduce
在python2中,这三个为内置的函数,可以直接调用
但是在python3中,变为了类,返回结果变成了可迭代的对象,可以加list进行强制装换;同时在使用reduce时,需要导入functools

有关其他语法不同将在我遇到的时候继续更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值