在列表子集上使用list.reverse()时出现“NoneType”对象无法迭代
我想把一个列表的某一部分的反转结果添加到另一个列表里。但是,不知道为什么,解释器好像不太喜欢这样做。下面是我写的代码。
list1.extend(list2[someInt:someOtherInt].reverse())
为什么这样做不行呢?我觉得这看起来挺合理的……
2 个回答
5
list
方法是直接在原来的列表上进行操作的,也就是说它们不会返回新的列表,而是返回 None
。
3
除了Ignacio的回答,这里有一个解决方案。你可以试试:
list1.extend(reversed(list2[someInt:someOtherInt]))
另外,你也可以用反向索引的切片,但要小心越界错误哦!
list1.extend(list2[someOtherInt - 1: someInt - 1: -1])
其实最好还是用第一种方法,特别是第二种方法在索引为0的时候会出问题。
关于reversed
,还有一个小技巧,就是你可以用sorted(list1)
来代替list1.sort()
。