python2.x中函数在python3.x中的改动方法

一、pickle函数

python2.x中:fw=open(filename,'w')和fr=open(filename,'r'),

python3.x中:fw=open(filename,'wb')和fr=open(filename,'rb')。

二、dict.keys()

在python2.x中,dict.keys()返回一个列表,在python3.x中,dict.keys()返回一个dict_keys对象,比起列表,这个对象的行为更像是set,所以不支持索引的。

解决方案:list(dict.keys())[index]

三、字典中的.iteritems()函数

python2.x中为.iteritems(),

python3.x中为.items()。

四、range对象在python3.x中不能删除

python2.x中,st=range(0,50);del(st[4])能够运行

python3.x中,st=list(range(0,50));del(st[4])才能够运行

五、map函数在python3.x中不能直接使用了

python2.x中的map(float,[1,2,3])即把后面的list转换成float并返回list

python3.x中必须用list(map(float,[1,2,3]))来转换,否则转换结果是<map object at 0x028DBDD0>

六、numpy数组和矩阵向list转换

python中库numpy中的array和mat向list转换都有转换函数.tolist(),直接调用即可。

七、set的构建

在python2.x中,可以直接用set(list)或者set(mat)或者set(array)来构建,但是

在python3.x中,不能使用这三种,因为这三种是可动态扩充的即提示“unhashable type: 'matrix'”,这个问题需要用tuple元组来解决,必须先把array或者matrix转换成元素,然后才能用set,组成set(tuple(array/list/mat))的形式。注意必须彻底转换,[[1,2,3][1,2,3]]这样的是不行的,只能进行一行或一列的转换[1,2,3]才行,[[1,2,3]]这样也不行,即必须只能有一个[]!!!

这个是我在看《机器学习实战》的时候遇到的,纠结了好长时间。

八、sorted函数

在python2.x中,sorted函数有一个可选参数是cmp,可以指定比较函数,但是

在python3.x中,sorted函数去掉了这个cmp参数,那么如何补救呢?可以用key=functools.cmp_to_key(func)来代替。具体的排序可以参考:

http://www.cnblogs.com/65702708/archive/2010/09/14/1826362.html

九、在字典中遍历keys,并且同时删除

在python2.x中,如果a={},那么遍历可以用for item in a.keys() if.... delet(a[item])。如果用for item in a if.... delet(a[item])是会出错的

在python3.x中,第一中情况也会出错,需要L=list(a.keys()),然后for item in L if.... delet(a[item])

待续。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值