Python 列表 reverse()函数使用详解
reverse()函数,可以反正 列表的函数
用法
data = [1, 2, 3] data.reverse() print(data)
输出:
[3, 2, 1]
1、reverse()会修改原始副本
reverse() 设计的目的就是反转原始列表并返回None。
这样设计的好处就是,不需要创建新的列表,从而减少「资源」的使用。
反转前后的内存地址:
data = [1, 2, 3] print('反转之前的地址', id(data)) data.reverse() print('反正之后的内存地址', id(data))
输出:
反转之前的地址 3121968088448
反正之后的内存地址 3121968088448
反转前后的地址没有发生改变,但是内容发生改变,意味着反转前数据”消失“,需要注意
2、reverse()和reversed()的区别?
reversed()函数,不在原始数据上进行操作,重新开辟一个空间进行操作
data = [1, 2, 3] print('反转之前的地址', id(data)) data1 = reversed(data) print('反正之后的内存地址', id(data1))
输出:
反转之前的地址 2626746615168
反正之后的内存地址 2627170379104
reversed()函数的返回值是 :迭代器
data = [1, 2, 3] data1 = reversed(data) print(data1)
输出:
<list_reverseiterator object at 0x000001CC814EAFE0>
字符串、元组、字典等类型不能使用 reverse() 函数,否则报错
AttributeError: 'tuple' object has no attribute 'reverse'
# AttributeError: 'tuple'对象没有属性'reverse'
AttributeError: 'str' object has no attribute 'reverse'
AttributeError: 'dict' object has no attribute 'reverse'
字符串、元组、字典等类型可以使用reversed()函数 ,返回一个迭代器
data =(1,2,3) data1 = reversed(data) print(data1)
输出:
<reversed object at 0x00000294EFAEAFE0>