python reversed()

#reversed()函数是返回序列seq的反向访问的迭代器。参数可以是列表,元组,字符串,不改变原对象。

l=[1,2,3,4,5]
l1=reversed(l)
for i in l1:
    print(i,end='')#参数为列表,第一次查看有结果输出,以后则为空,没有内容
print(1111111111111)
for i in l1:
    print(i)
t=(4,5,6)
tt=reversed(t)
print(tuple(tt))#参数为元组,第一次查看有结果输出,以后则为空,没有内容
print(22222222222222)
print(tuple(tt))
s="cba"
ss=reversed(s)
print(list(ss))#参数为字符串,第一次查看有结果输出,以后则为空,没有内容
print(333333333333333)
print(list(ss))
s="1234"
ss=reversed(s)
print(''.join(ss))#参数为字符串,第一次查看有结果输出,以后则为空,没有内容
print(4444444444444444444)
print(''.join(ss))

'''这是因为反向创建了一个迭代器,该迭代器在第二次调用列表(LL)时已经使用过了。
其原因就是ll不是反转列表本身,而是一个列表反向迭代器。所以当你第一次调用列表(ll),
它会遍历ll并且创建一个新的列表从项目输出迭代器。当你再进行一次,ll仍然是原来的迭代器,
已经经历了所有的项目,所以它不会再遍历什么,这就造成了空列表。
总结:reversed()之后,只在第一次遍历时返回值。'''

结果:

================ RESTART: D:/ADB/kuaidou0102/kuaidou1210/li2.py ================
543211111111111111
(6, 5, 4)
22222222222222
()
['a', 'b', 'c']
333333333333333
[]
4321
4444444444444444444

>>>

posted @ 2021-01-03 06:29  myrj  阅读(312)  评论(0编辑  收藏  举报