在列表子集上使用list.reverse()时出现“NoneType”对象无法迭代

2 投票
2 回答
2206 浏览
提问于 2025-04-15 19:30

我想把一个列表的某一部分的反转结果添加到另一个列表里。但是,不知道为什么,解释器好像不太喜欢这样做。下面是我写的代码。

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()

撰写回答