Python 对列表的子集使用list.reverse()&引用;“非类型”;对象是不可编辑的

Python 对列表的子集使用list.reverse()&引用;“非类型”;对象是不可编辑的,python,list,Python,List,因此,我试图将另一个列表子集的相反部分附加到一个列表中。出于某种原因,翻译似乎不喜欢它。这是我正在做的 list1.extend(list2[someInt:someOtherInt].reverse()) 为什么这不合法?对我来说这似乎是合理的。list方法在适当的位置运行,这意味着它们返回None除了Ignacio的答案之外,还有一个解决方案。尝试: list1.extend(reversed(list2[someInt:someOtherInt])) 或者,您可以使用具有反向索引的切片

因此,我试图将另一个列表子集的相反部分附加到一个列表中。出于某种原因,翻译似乎不喜欢它。这是我正在做的

list1.extend(list2[someInt:someOtherInt].reverse())

为什么这不合法?对我来说这似乎是合理的。

list
方法在适当的位置运行,这意味着它们返回
None
除了Ignacio的答案之外,还有一个解决方案。尝试:

list1.extend(reversed(list2[someInt:someOtherInt]))
或者,您可以使用具有反向索引的切片,但要小心“逐个关闭”错误

list1.extend(list2[someOtherInt - 1: someInt - 1: -1])
最好还是坚持使用第一种方法,尤其是第二种方法在索引为0时会失败


reversed
相关的另一个技巧是用
list1.sort()
代替
sorted(list1)

这个答案唯一的问题是它不能解释实际的问题,以及为什么问题的代码是这样工作的。是的,而另一个答案不能提供解决方案。@Justin:但是综合起来,这两个答案完全回答了这个问题。该站点的目的是回答OPs问题。伊格纳西奥和我一起给出了答案。到底是什么问题?一旦海报接受了对他最有帮助的答案,接受的答案就可以编辑,以包含其他有用帖子的信息。我的评论是对Devin评论的回应。我正试图讨论解决方案。你知道为什么选择这个设计决策吗?我问了一个类似的问题