【发布时间】:2021-09-19 15:05:05
【问题描述】:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
reversed_list = my_list.sort(reverse=True) 打印(reversed_list)
当我键入此代码时,python 返回单词“None”,我无法弄清楚为什么我不能将变量分配为反向列表。对此问题的解释或解决方案将不胜感激。
【问题讨论】:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
reversed_list = my_list.sort(reverse=True) 打印(reversed_list)
当我键入此代码时,python 返回单词“None”,我无法弄清楚为什么我不能将变量分配为反向列表。对此问题的解释或解决方案将不胜感激。
【问题讨论】:
sort() 方法不返回任何内容。相反,它会更改列表。所以正确的代码是:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
reversed_list = my_list.copy()
reversed_list.sort(reverse=True)
print(reversed_list)
如果您不需要这两个列表,您可以避免复制并改为在my_list 上进行排序,从而节省一些内存。
【讨论】:
如果你不想改变你的列表对象,你可以使用sorted()。 sorted() 函数可以对任何可迭代对象进行排序并以该可迭代排序方式返回项目列表。
例如。 sorted('abicd', reverse=True) 将返回 ['i', 'd', 'c', 'b', 'a']
排序更改了您的列表对象,并且不返回任何内容。 e, None 在 python 中。
你可以更好地编码它:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
reversed_list = sorted(my_list, reverse=True)
print(reversed_list)
【讨论】: