在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/

10-12 22:04
查看更多