python中的 .reverse() self.__reverse() reversed(obj) 使用与区别

在python中想逆序输出列表或字典中的元素可能会用到像 .reverse() self.__reverse()__ reversed(obj) 这些逆序函数,这些函数很类似但用法却略有不同,如果不了解具体的区别可能会导致一些出乎意料的错误。

obj.reversed() :
先来说说obj.reversed()吧,它是由列表或者字典对象来调用,沒有返回值,因为它的作用是将obj对象本身给逆序了,也就是比如list调用.reversed()后它里面的元素就已经是逆序的了,,tuple沒有这个函数

list=[1,2,3,4,5,6]
list.reverse()
print(" {} ".format(list))

运行结果:在这里插入图片描述
self.__reverse()__ 和 reversed(obj)
self.__reverse() 和 reversed(obj)都是有返回值的为迭代器类型,他们并没有改变对象本身的值,

三种类型的返回值结果:

list=[1,2,3,4,5,6]
list1=list.reverse()
list2=list.__reversed__()
list3=reversed(list)
print("list1  {}   list2  {}    list3  {}".format(list1,list2,list3))

在这里插入图片描述

reversed()和self.__reverse()__ 不同的是,self.__reverse()__ 既然是self调用,证明我必须自己是由逆序这个功能的。像tuple就没有__reverse()__,因为这个数据类型就是不可变列表。但reversed()是操纵对象的函数,它可以将tuple中的元素逆序。可以说reserved()面向的面更广,而self.__reverse()__和obj.reversed()是对象中的方法,只有对象可以逆序才可以调用

比如用reserved(tuple) 可以

tu=(1,2,3,4,5)
for i in reversed(tu):
    print(i)

在这里插入图片描述
而 tuple调用__reserved()__就不行了

tu=(1,2,3,4,5)
for i in tu.__reversed__():
    print(i)

在这里插入图片描述

顺便记录一个小知识点:
python中沒有do while语句。。。但可以用while true 加 if 条件判断来代替。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值