reverse() 和 reversed()

reverse() 是python列表的一个内置方法 ( 也就是说在 元组 ,字典 ,字符串 中是没有这个内置方法的 ) , 用于列表中元素的反转

reversed() 是 python自带的一个方法 . 参数可以是 列表, 元组, 字符串 , 且不改变原对象. 经过reversed()的作用之后,返回的是一个把序列值经过反转之后的迭代器. 所以需要遍历, 或者list() 或者next() 方法获取作用后的值.

 

reverse() : 

  列表内置方法, a = [1,2,3,4,5] ,  a.reverse() 的返回值是None , 需要打印其作用的列表才可查看出具体的效果.

a = [1,2,3,4,5]
print(a.reverse())
print(a) # 列表是可变序列, reverse()会改变原对象的值

打印结果 :

None
[5, 4, 3, 2, 1]

 

reversed()

  

  注意 : reversed()之后,只在第一次遍历时返回值。

# 列表的反转
a = [1,2,3,4,5]
b = reversed(a)
c =list(b)
print(a)
print(b)
print(c)

打印结果:

[1, 2, 3, 4, 5]   #  reversed() 不改变原对象
<list_reverseiterator object at 0x00000180D3F854B0>  #  返回的是一个把序列值经过反转后的迭代器
[5, 4, 3, 2, 1]   # 通过list()方法获取作用后的值
# 元组的反转
x = (1,2,3,4,5)
y = reversed(x)
c = tuple(y)
print(x)
print(y)
print(c)

打印结果:

(1, 2, 3, 4, 5)   # reversed() 不改变原对象
<reversed object at 0x000001196FBB54B0> # 返回的是序列值经过反转之后的迭代器.
(5, 4, 3, 2, 1)   # 通过tuple()方法或取作用后的值. 也可以用list()方法.
# 字符串的反转
l = 'abcdefg'
m = reversed(l)
n = list(m)
print(l)
print(m)
print(n)


打印结果:

abcdefg   # reversed() 不改变原对象
<reversed object at 0x000001ACBCB06E60> # 返回的是一个序列经过反转之后的迭代器.
['g', 'f', 'e', 'd', 'c', 'b', 'a']  # 需要list()等方法遍历 获取作用后的值.

 

posted @ 2022-05-05 22:57  Avicii_2018  阅读(1088)  评论(0编辑  收藏  举报