Python中List变量reverse后,结果为None

 

Python中List变量reverse后,结果为None

假设有列表a=[1,2,3,4,5,6],调用a = a.reverse()后,结果不是期望的,颠倒过来的list,却是None:

print( a)

值为:

a= 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,还是不懂。

2.后来找到:a=[1,2,3,4].reverse() – why "a" is None?,看到其讨论说到:

b = [1,2,3,4] 
a = b.reverse() 
would change the value of b.

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

所以,本身直接使用:

a.reverse(); # -> is OK, the self is reversed !!!

即可实现把a翻转。

【总结】

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

?

1

reversedList = orignalList.reverse();

的用法,而应该是:

?

1

2

orignalList.reverse();

reversedList = orignalList;

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

 

Python列表reverse()方法用于将列表中的对象反转位置。

 

语法

以下是reverse()方法的语法 -

 
  1. list.reverse()

  2.  

Python

参数

  • NA

返回值

  • 此方法不返回任何值,但从列表中反转给定对象。

示例

以下示例显示了reverse()方法的用法。

 
  1. #!/usr/bin/python3

  2. list1 = ['physics', 'Biology', 'chemistry', 'maths']

  3. list1.reverse()

  4. print ("list now : ", list1)

  5.  

Python

当运行上面的程序,它产生以下结果 -

 

List : ['hema','xyz''abc''zara''xyz'126]

在函数中如果我们输入:

return list.reverse()

 

则会出现错误。因为正如前所述,列表的reverse函数不返回任何值,而return是需要返回值的。如果想要返回反转之后的列表值,只需要:

list.reverse

return list

转载于:Python中List变量reverse后,结果为None

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值