这是因为
reversed返回
iteratorwhile切片会返回整个列表。
>>> lis = range(10)>>> lis[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]>>> reversed(lis)<listreverseiterator object at 0x909dd0c>
您必须使用
list()将该迭代器转换为整个列表:
>>> lis = range(10**5)>>> %timeit lis[::-1]100 loops, best of 3: 2.8 ms per loop>>> %timeit list(reversed(lis))100 loops, best of 3: 3.13 ms per loop
帮助 上
reversed:
>>> reversed?Type: typeString Form:<type 'reversed'>Namespace: Python builtinDocstring:reversed(sequence) -> reverse iterator over values of the sequenceReturn a reverse iterator



