马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python FAQ 042 reverse() 和 reversed() 的区别
问题
list.reverse() 和 reversed() 这两个方法有什么区别?
解答
区别如下:
- list.reverse() 只能给一个列表排序,它是只属于列表的方法,而 reversed() 可以给所有支持迭代的对象排序,它可以用于所有可迭代对象
- list.reverse() 没有返回值,它是在原列表上排序,而 reversed() 是返回可迭代对象翻转后的结果(以迭代器表示)
这里有几个例子:
>>> a = [1, 2, 3, 4, 5]
>>> a.reverse() # 将列表 a 翻转
>>> print(a)
[5, 4, 3, 2, 1]
>>> a = a.reverse() # 这样使用是错误的,a 会变成 None
>>> a
>>> print(a)
None
>>> reversed([1, 2, 3, 4, 5]) # 返回一个迭代器,可以将这个迭代器转化为列表或元组
<list_reverseiterator object at 0x000001C165DDDE80>
>>> list(reversed([1, 2, 3, 4, 5]))
[5, 4, 3, 2, 1]
>>> list(reversed((1, 2, 3, 4, 5))) # 可以用于元组
[5, 4, 3, 2, 1]
>>> list(reversed(range(5))) # 还可以用于 range() 等可迭代对象
[4, 3, 2, 1, 0]
|