python 类变量 none 内存泄露_【已解决】Python中List变量reverse后,结果为None

【问题】

Python中一个List变量allPageUrlList:

调用reverse后,结果不是期望的,颠倒过来的list,却是None:print "reversedPageUrlList=",reversedPageUrlList;

值为:reversedPageUrlList= None

【解决过程】

1.找了下,结果只找到这个官方解释:5.6.4. Mutable Sequence Types

s.reverse()reverses the items of s in place

Note:The sort() and reverse() methods modify the list in place for economy of space when sorting or reversing a large list. To remind you that they operate by side effect, they don’t return the sorted or reversed list.

但是什么是side effect,还是不懂。b = [1,2,3,4]

a = b.reverse()

would change the value of b.

才想起来,原来这个reverse函数,针对列表的操作,其结果是直接改变列表本身(为了节省空间),所以,直接就把原先的list改为你所想要的reversed后的结果了,而返回值,是空的,不返回任何值。

所以,本身直接使用:allPageUrlList.reverse(); # -> is OK, the self is reversed !!!

即可实现把allPageUrlList翻转。

【总结】

对于List等Sequence等类型的变量,比如此处的List变量,其内置函数reverse,是直接操作变量本身,调用reverse后,变量本身的值就是reverse后的值了,所以不能出现:reversedList = orignalList.reverse();

的用法,而应该是:orignalList.reverse();

reversedList = orignalList;

此原则,同样适用于sort函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值