每个标题。我不明白为什么它无效。我知道他们改变了对象,但是如果你调用 sort 方法,在它完成之后你会调用 reverse 方法,所以它应该没问题。为什么我需要在下面的行中输入 lst.sort(),lst.reverse()?编辑:好吧,当它被这样指出时,我之前没有得到它有点尴尬。我从字面上认识到它改变了对象并因此返回了一个 None,但我想它没有注册这也意味着你不能反转一个 None 类型的对象。
3 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
当您调用 lst.sort() 时,它不会返回任何内容,它会更改列表本身。所以 lst.sort() 的结果是 None,因此你试图反转 None 这是不可能的。
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
简单地说,lst.sort()不返回排序的列表。它会自我修改。
>>> lst = [3,1,2,0]
>>> lst
[3, 1, 2, 0]
>>> lst.sort().reverse()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'reverse'
>>>
由于lst.sort()不返回任何内容,Python 会自动None为您返回。由于None没有reverse方法,因此会出现错误。
>>> lst.sort()
>>> lst.reverse()
>>> lst
[3, 2, 1, 0]
>>>
添加回答
举报
0/150
提交
取消