你是否遇到过在 Python 中对列表排序后,变量变成了 None 的情况?例如,执行以下代码:

x = [3, 7, 5]
x = x.sort(reverse=True)
print(x)

输出结果为:

None

这是因为 sort() 方法在 Python 中不会返回新的已排序列表。相反,它会原地对列表进行排序,并返回 None。因此,当你将 x.sort(reverse=True) 的结果赋值给 x 时,x 就变成了 None

要想获得排序后的列表,你可以使用以下两种方法:

  1. 直接使用 sort() 方法对原列表进行排序,无需赋值:
x = [3, 7, 5]
x.sort(reverse=True)
print(x)  # 输出: [7, 5, 3]
  1. 使用 sorted() 函数创建一个新的已排序列表:
x = [3, 7, 5]
y = sorted(x, reverse=True)
print(x)  # 输出: [3, 7, 5]
print(y)  # 输出: [7, 5, 3]

通过理解 sort() 方法的行为,你可以避免在 Python 中排序列表时出现意外结果。

Python 列表排序陷阱:为什么 x.sort() 返回 None?

原文地址: https://www.cveoy.top/t/topic/f3vF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录