python - 何时使用反向内置而不是列表切片

标签 python list python-3.x reverse

在 python 中,有很多方法可以反转序列:

l = [1,2,3]
reversed(l) #returns a reverse iterator
l[::-1] #returns a reverse sequence

虽然有一个专门用于反转序列的内置函数,但使用列表切片更简洁。此外,列表切片返回一个完整的Sequence,它支持__getitem____len__,而reversed只是一个迭代器。最后,reversed 需要一个Sequence,这意味着列表切片几乎总是有效。

使用 reversed 内置列表切片有什么优势?

最佳答案

list[::-1] 返回列表的新反向副本。会根据list的大小消耗更多的内存:sizeof the list object + sizeof(pointer) * len(list)

如果您不需要一次使用整个列表项,请使用 reversed在内存方面更可取。 (例如,倒序迭代列表,一项一项处理并不需要一次处理所有项。)

关于python - 何时使用反向内置而不是列表切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26451720/

相关文章:

python - 为什么我不能在 python2.7 中解码 ‘utf8’ 字符串?

python - 我必须递归检查集合Python3.0中是否存在该值

Lisp 中没有 nil 的列表

c# - 接受 "params"哪些是列表本身?

python - scipy.interpolate.interp1d 'kind' 不工作

python-3.x - 使用快速排序对区间进行模糊排序

python - "dict object is not callable"尝试从 request.json 获取值时

Python glob——从列表中获取最新文件

python - regex.sub 意外地用某种编码修改了替换字符串?

python - 在模块级别跳过由 pytest_generate_tests 生成的参数化测试