python列表排序

2022-08-23 21:33:15 字數 1460 閱讀 6660

1.使用list內建函式sort排序

list.sort(key=none,reverse=false)

l = [2,4,4,1,7,2,5,0]

print

(l.sort())

結果:[0, 1, 2, 2, 4, 4, 5, 7]

l.sort(reverse=true)

print

(l)結果:[7, 5, 4, 4, 2, 2, 1, 0]

2.用序列型別函式sorted(list)進行排序

l = [2,4,4,1,7,2,5,0]

print

(sorted(l))

結果:[0, 1, 2, 2, 4, 4, 5, 7]

注意:sorted和sort區別

sorted(list)返回乙個物件,可以用作表示式,原生的list順序不變,生成乙個新的排好序的list物件,sorted可以對可迭代物件進行排序

list.sort()不會返回物件,改變原有的list順序。只能用於列表排序

3.選擇排序法

從第乙個位置開始比較,找出最小的,和第乙個位置互換,開始下一輪。

步驟:在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。

以此類推,直到所有元素均排序完畢。

#

選擇排序

s = [2,4,1,8,33,3,9,22]

n =len(s)

for i in

range(n):

min = i #

最小值索引

for j in range(i+1,n):

if s[min] >s[j]:

min =j

s[min],s[i] = s[i],s[min] #

找出最小值與當前值互動

print(s)

4.氣泡排序法

從左到右,陣列中相鄰的兩個元素進行比較,將較大的放到後面。

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對第0個到第n-1個資料做同樣的工作。這時,最大的數就「浮」到了陣列最後的位置上。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

lt = [3, 5, 2, 1, 8, 4]

n=len(lt)

for x in range(n-1):

for y in range(n-1-x):

if lt[y]>lt[y+1]:

lt[y],lt[y+1]=lt[y+1],lt[y]

print(lt)

python 列表排序 python列表排序有哪些

python列表排序 1 氣泡排序,是一種簡單的排序演算法,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來 2 插入排序,通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。1 氣泡排序 氣泡排序 bubble sort 是一種簡單的排序...

python 列表排序

列表排序 s 1,2,3 s.reverse 倒序 s.sort 正序 sorted sorted iterable,cmp none,key none,reverse false new sorted list iterable 是可迭代型別 cmp 用於比較的函式,比較什麼由key決定,有預設值...

列表python排序

python題目 對列表 37,41.12,35,22,98,16,7,45,31 進行排序。這裡不考慮.sort 方法。usr bin env python coding utf 8 def merge left,right i,j 0,0result 左右列表元素對比大小,然後加1while i...