reversed函数返回的是什么,reversed函数默认升序还是降序
列表。反转(
计算机编程语言的反向()是列表的内置方法,没有参数,也没有返回值。
反向) )会改变列表(就地反转),因此不需要返回值。
词典(字典)元组)和字符串(str)中没有反向) )方法。调用将返回异常。
帮助(list.reverse)。
帮助方法描述符:
反转(…).
我。反向-反向*原地*
例如:
我=[ 1,2,3,4,5 ]
反转().
我
[5、4、3、2、1]
t=(2、3、4、5、6))。
t.reverse())。
跟踪后退(mostrecentcalllast):
文件,第一行,在
t.reverse())。
属性错误:"元组" objecthasnoattribute "反向"
s=python
反转()。
跟踪后退(mostrecentcalllast):
文件,第一行,在
反转()。
属性错误:" str " objecthasnoattribute " reverse "
d={a:1, b:2}
反向的。
跟踪后退(mostrecentcalllast):
文件,第一行,在
反向的。
属性错误:“字典”对象没有属性“反转”
2 .反转(序列).
参数是列表、元组和字符串,不更改原始对象。
函数是反转序列对象,然后从后向前反转其元素以构建新的迭代程序。迭代器的意思是只能在循环中输出。
a=返回(范围) 10 )传递到范围对象
a#型成为迭代器
列表(甲)百分之五十。
[9、8、7、6、5、4、3、2、1、0]
a=[a , b , c , d]
a
[a ,b ,c ,d]
恢复(一)#接收列表对象
b=反转(一) ) )
b#型成为迭代器
是列表(二)
[d , c , b , a]
如果参数不是序列对象,则必须定义__已反转_ _方法。
#类型学生没有定义__已反转_ _方法
类学生:
def__init__(self,name,*args):
self.name=name
self.scores=[]
forvalueinargs:
self.scores.append(值)
a=学生(鲍勃,78,85,93,96)).
无法反转(一)实例)
跟踪后退(mostrecentcalllast):
文件,第一行,在
反转(甲)百分之五十。
type error:argumenttorinvorved()必须是一个序列
类型(分数)#列表类型
#重新定义类型并定义__已反转_ _方法
类学生:
def__init__(self,name,*args):
self.name=name
self.scores=[]
forvalueinargs:
self.scores.append(值)
def__reversed__(自身) :
自我。分数=反转(自我。分数)).
a=学生(鲍勃,78,85,93,96)).
答。分数#列表类型
[ 78、85、93、96 ]
类型(分数).
反转(一)#实例现在可以反转
答。分数#反转后,类型变为迭代器
类型(分数).
列表(分数).
[ 96,93,85,78 ]
不用看
2.1官方文档
序列中,反转(方法或支持的序列协议对象(__len__))方法和__getitem__)方法的整数参数从0开始
returnreverseiterator。seqmustbeanobject,它具有_ _ reversed _(methodorsupportthesequenceprotocol(the _ _ loched)_ _ getitem _ _()methowithegengerarguments从0开始)。
2.2例
我=[ 1,2,3,4,5 ]
ii=反转(一) )
二
福雷尼:
print(a,end= )
12345
forainii:
print(a,end= )
54321
#第二次遍历为空
forainii:
print(a,end= )
其他类型为元组,字符串方法与上述相同。
问题
为什么在反转(之后是第二个为循环、第二个列表),第二个元组)或第二个加入)中获得的结果为空?
答案:
因为陆线(座机的缩写)不是反转列表本身,而是监听器。因此,当wmddp首次调用列表陆上通信线(座机)时,将创建一个新列表,以从项目中输出迭代器。当wmddp第二次运行时,ll还是原始迭代器,已经经历了所有项目,所以它没有重复任何操作,而是列出了一个空列表。
所以当你第一次调用(ll)的时候,它不会调用任何东西,导致一个空的列表。