zltzlt 发表于 2020-7-22 20:49:50

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() 等可迭代对象

dan维 发表于 2020-7-28 16:35:37

细节制胜
页: [1]
查看完整版本: Python FAQ 042 reverse() 和 reversed() 的区别