Python 列表排序陷阱:为什么 x.sort() 返回 None?
你是否遇到过在 Python 中对列表排序后,变量变成了 None 的情况?例如,执行以下代码:
x = [3, 7, 5]
x = x.sort(reverse=True)
print(x)
输出结果为:
None
这是因为 sort() 方法在 Python 中不会返回新的已排序列表。相反,它会原地对列表进行排序,并返回 None。因此,当你将 x.sort(reverse=True) 的结果赋值给 x 时,x 就变成了 None。
要想获得排序后的列表,你可以使用以下两种方法:
- 直接使用
sort()方法对原列表进行排序,无需赋值:
x = [3, 7, 5]
x.sort(reverse=True)
print(x) # 输出: [7, 5, 3]
- 使用
sorted()函数创建一个新的已排序列表:
x = [3, 7, 5]
y = sorted(x, reverse=True)
print(x) # 输出: [3, 7, 5]
print(y) # 输出: [7, 5, 3]
通过理解 sort() 方法的行为,你可以避免在 Python 中排序列表时出现意外结果。
原文地址: https://www.cveoy.top/t/topic/f3vF 著作权归作者所有。请勿转载和采集!