python有内建sort()与sorted()两种排序方法
以下将为各位详细介绍
sort()
sort()可以将列表中的元素由小排序到大,对于纯数值列表与纯英文字串列表有很好的分群效果
範例输入1.1
a=[3,1,2]a.sort()b=['b','c','a']b.sort()print(f'a={a}')print(f'b={b}')
範例输出1.1
a=[1, 2, 3]b=['a', 'b', 'c']
在排序字串列表时,顺序为负数(字串型别)->零(字串型别)->正数(字串型别)->大写英文字母(由A到Z排序)->小写英文字母(由a到z排序)
範例输入1.2
a=['1','a','-1','A']a.sort()print(f'a={a}')
範例输出1.2
a=['-1', '1', 'A', 'a']
上述的内容皆是由小排序至大(预设),sort()也允许由大排序至小,只需在函式后方增加参数reverse=True
即可
範例输入1.3
a=[1,3,2]a.sort()print(f'a={a}')a.sort(reverse=True)print(f'reverse_a={a}')
範例输出1.3
a=[1, 2, 3]reverse_a=[3, 2, 1]
上面的程式码第一个是由小到大的结果
第二个是由大到小排序过后的结果
值得注意的是
经sort()排序后原列表中的元素顺序将被永久更改
如果希望保留原列表,可以使用sorted()
sorted()
我们可以使用sorted()产生新串列来储存排序结果,其排序规则与sort()相同
範例输入2.1
a=[3,1,2]b=sorted(a)print(f'a={a}')print(f'b={b}')
範例输出2.1
a=[3, 1, 2]b=[1, 2, 3]
上面的程式码第一个是原来的列表顺序
第二个是排序过后的新列表
原先的列表并不会被改变
sorted()同样也允许由大排序至小,只需在函式后方增加参数reverse=True
即可,这里就不再多做赘述