python中字典按鍵、值進行排序


看到排序,就不禁想起python中的sort和sorted

sort是列表中的方法,用於對列表進行排序(改變的是原列表,不返回新列表)

用法: list.sort(key=None,reverse=True) ,參數中reverse默認是False,表示升序,如果設置成True就是降序(注意要首字母要大寫)

sorted是Python的內建函數,用於對可迭代對象進行排序,返回一個新的迭代對象

用法:sorted(iterable,key=None,reverse=False),參數中iterable是迭代對象,key是用來比較的元素(比如字典可以選擇按鍵或值進行排序),reverse默認False升序,可設置成True降序(注意要首字母要大寫)

 

對列表進行排序既可以用sort也可以用sorted

from random import randint
# sort只能對列表使用,sorted用於所有可迭代對象
# randint是random模塊下的一個函數,可以生成范圍內的一個隨機數
list = [randint(1,100) for i in range(10)]
print('列表排序前:',list ,'地址為:',id(list))
list1 = list.sort(reverse=True)
print('用sort降序排序后返回:',list1,'此時原始列表為:',list )
list2 = sorted(list,reverse=True)
print('用sorted降序排序后返回:',list2 ,'地址為:',id(list2))
用sort和sorted對列表進行排序

 

運行結果為:

 

 

 可以看出用sort返回值是None,用sorted則會返回一個新的列表。如果不用保存原始列表的話,用sort方法節省空間、效率會高一些。

 

接下來用sorted對字典進行排序(sort只能用於對列表排序)

按鍵排序:

sorted(dict.items(),key=lambda dict:dict[0],reverse=False)返回的是列表,列表內是根據鍵(key)排好序的元祖

sorted(dict,key=lambda dict:dict[0],reverse=False)返回的是列表,列表內是排好序的鍵(key)

sorted(dict.keys(),reverse=False)返回的是列表,列表內是排好序的鍵(key)

按值排序:

sorted(dict.items(),key=lambda dict:dict[1],reverse=False)返回的是列表,列表內是根據值(values)排好序的元祖

sorted(dict.values(),reverse=False)返回的是列表,列表內是排好序的值(values)

關於lambda匿名函數,可以看https://www.cnblogs.com/xiaocaiqa/p/12469583.html

如果需要返回一個字典,那么就要對返回的列表進行處理:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM