python sort和sorted使用詳解

2021-07-04 14:39:09 字數 1509 閱讀 3583

python sort 使用,尤其是sort和sorted的使用區別

a = [5,2,1,9,6]        

>>> sorted(a) #將a從小到大排序,不影響a本身結構

[1, 2, 5, 6, 9]

>>> sorted(a,reverse = true) #將a從大到小排序,不影響a本身結構

[9, 6, 5, 2, 1]

>>> a.sort() #將a從小到大排序,影響a本身結構

>>> a

[1, 2, 5, 6, 9]

>>> a.sort(reverse = true) #將a從大到小排序,影響a本身結構

>>> a

[9, 6, 5, 2, 1]

# 注意,a.sort() 已改變其結構,b = a.sort() 是錯誤的寫法!

>>> b = ['aa','bb','bb','zz','cc']

>>> sorted(b)

['bb', 'cc', 'aa', 'bb', 'zz'] #按列表中元素每個字母的ascii碼從小到大排序,如果要從大到小,請用sorted(b,reverse=true)下同

>>> c =['ccc', 'bb', 'ffff', 'z']

>>> sorted(c,key=len) #按列表的元素的長度排序

['z', 'bb', 'ccc', 'ffff']

>>> d =['ccc', 'bb', 'ffff', 'z']

>>> sorted(d,key = str.lower ) #將列表中的每個元素變為小寫,再按每個元素中的每個字母的ascii碼從小到大排序

['bb', 'ccc', 'ffff', 'z']

>>> def lastchar(s):

return s[-1]

>>> e = ['abc','b','aaz','ef']

>>> sorted(e,key = lastchar) #自定義函式排序,lastchar為函式名,這個函式返回列表e中每個元素的最後乙個字母

['b', 'abc', 'ef', 'aaz'] #sorted(e,key=lastchar)作用就是 按列表e中每個元素的最後乙個字母的ascii碼從小到大排序

>>> f = [,,] #列表中的元素為字典

>>> def age(s):

return s['age']

>>> ff = sorted(f,key = age) #自定義函式按列表f中字典的age從小到大排序

[, , ]

>>> f2 = sorted(f,key = lambda x:x['age']) #如果覺得上面定義乙個函式**不美觀,可以用lambda的形式來定義函式,效果同上

本文出自 

Python sort 與 sorted 簡單使用

sort是在list上的方法,sorted可以對所以可迭代的物件進行排序操作 使用list中的sort方法返回的是對已經存在的列表進行操作 使用sorted內建函式,返回的是乙個新的list,而不是在原來的基礎上進行操作 sort語法 list.sort cmp none,key none,reve...

python的列表排序sort和sorted

list排序可以使用python內建的sorted 函式或list自帶的sort 函式。區別 sorted 不修改原list而是建立個新list,list.sort 直接修改原list l 3 4,2 5,7 1 l new sorted l print l new,l 原list未修改 1 2,3...

qsort和sort的區別

first qsort 基本快速排序的方法,每次把陣列分成兩分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本排序的效率較低。整合在 c語言庫函式裡面的的 qsort 函式,使用 三路劃分的方法解決這個問題。所謂三路劃分,是指把陣列劃分成小於劃分值,等於劃分值和大於劃分值的三個部分。函式對bu...