Python sort()和sorted()
生活随笔
收集整理的這篇文章主要介紹了
Python sort()和sorted()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python sort()和sorted()
sort 與 sorted 區別:
sort()
sort()是列表list的方法之一
L.sort(key=None, reverse=False)sorted()
sorted() 函數可以對任意可迭代對象排序。返回一個列表
sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。
list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,而內建函數 sorted 方法返回的是一個新的list,而不是在原來的基礎上進行的操作
# sorted()語法 sorted(iterable[, cmp[, key[, reverse]]])參數說明:
- iterable -- 可迭代對象
- cmp -- 比較的函數,這個具有兩個參數,參數的值都是從可迭代對象中取出,此函數必須遵守的規則為,大于則返回1,小于則返回-1,等于則返回0
- key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序
- reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)
單個排序法則:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] new_students = sorted(students, key=lambda s: s[2]) print(new_students) # [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]多種排序法則:
s = 'asdf234GDSdsf234578' # 排序:小寫-大寫-奇數-偶數 new_s1 = "".join(sorted(s, key=lambda x: [x.isdigit(), x.isdigit() and int(x) % 2 == 0, x.isupper(), x])) print(new_s1) # addffssDGS335722448原理:
print(sorted([True, False])) # [False, True] # Boolean 的排序會將 False 排在前,True排在后x.isdigit()的作用把iterable分成兩部分,數字和非數字,數字在后,非數字在前
new_s1 = "".join(sorted(s, key=lambda x: [x.isdigit()])) print(new_s1) # asdfGDSdsf234234578x.isdigit() and int(x) % 2 == 0的作用是將數字部分分成兩部分,偶數(在后)和奇數(在前)
new_s1 = "".join(sorted(s, key=lambda x: [x.isdigit(), x.isdigit() and int(x) % 2 == 0])) print(new_s1) # asdfGDSdsf335724248x.isupper()的作用是在前面基礎上,保證字母小寫在前大寫在后
new_s1 = "".join(sorted(s, key=lambda x: [x.isdigit(), x.isdigit() and int(x) % 2 == 0, x.isupper()])) print(new_s1) # asdfdsfGDS335724248最后的x表示在前面基礎上,對所有類別數字或字母排序
new_s1 = "".join(sorted(s, key=lambda x: [x.isdigit(), x.isdigit() and int(x) % 2 == 0, x.isupper(), x])) print(new_s1) # addffssDGS335722448一道面試題
lst = [7, -8, 5, 4, 0, -2, -5]
要求:
轉載于:https://www.cnblogs.com/pankypan/p/11074372.html
總結
以上是生活随笔為你收集整理的Python sort()和sorted()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL 慢查询优化
- 下一篇: 13、yum