在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]
返回列表的新反向副本。根据列表的大小,它将消耗更多的内存:列表对象的大小+ sizeof(指针)* len(列表)
如果您一次不需要整个列表项,那么就内存而言,使用reversed
更为可取。 (例如,以相反的顺序迭代列表,一个接一个地处理项目并不需要一次完成所有项目。)
关于python - 何时使用反向内置函数而不是列表切片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26451720/