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