Python FAQ 042 reverse() 和 reversed() 的区别
Python FAQ 042 reverse() 和 reversed() 的区别问题
list.reverse() 和 reversed() 这两个方法有什么区别?
解答
区别如下:
[*]list.reverse() 只能给一个列表排序,它是只属于列表的方法,而 reversed() 可以给所有支持迭代的对象排序,它可以用于所有可迭代对象
[*]list.reverse() 没有返回值,它是在原列表上排序,而 reversed() 是返回可迭代对象翻转后的结果(以迭代器表示)
这里有几个例子:
>>> a =
>>> a.reverse() # 将列表 a 翻转
>>> print(a)
>>> a = a.reverse() # 这样使用是错误的,a 会变成 None
>>> a
>>> print(a)
None
>>> reversed() # 返回一个迭代器,可以将这个迭代器转化为列表或元组
<list_reverseiterator object at 0x000001C165DDDE80>
>>> list(reversed())
>>> list(reversed((1, 2, 3, 4, 5))) # 可以用于元组
>>> list(reversed(range(5))) # 还可以用于 range() 等可迭代对象
细节制胜
页:
[1]