|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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]
复制代码 |
|