为什么排序list_b没有价值?

时间:2017-04-06 13:18:15

标签: python list

我是一个初学者。 请解释为什么list_b对此简单代码没有价值。

list_a = [3,2,1,4]
list_b = list_a.sort()
print(list_a,list_b)

我认为list_b的值为list_a.sort()[3,2,1,4]但值为None。请有人帮我理解这一点。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用

list_b = sorted(list_a)

list_a = [3,2,1,4]
print(list_a)
list_a.sort()
print(list_a)
  

sorted()从迭代构建一个新的排序列表,   保留原始列表不受影响。

     

list.sort()对列表就地进行排序,改变列表索引,   它就地修改列表(并返回None以避免混淆)。   通常它比sorted()更不方便 - 但如果你不需要   原始列表,效率稍高。

查看How to sort的更多详情。

答案 1 :(得分:1)

我想你想这样做:

list_a = [3,2,1,4]
list_b = sorted(list_a)
print(list_a,list_b)

如果你这样做

list_a = [3,2,1,4]
list_a.sort()
print(list_a)

您会理解list_a.sort()会影响正确的list_a