1. 程式人生 > >Python sorted對字典和列表進行排序

Python sorted對字典和列表進行排序

1. 按鍵值對對字典進行排序

sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。

    其中iterable表示可以迭代的物件,例如可以是dict.items()、dict.keys()等,key是一個函式,用來選取參與比較的元素,reverse則是用來指定排序是倒序還是順序,reverse=true則是倒序,reverse=false時則是順序,預設時reverse=false。

    要按key值對字典排序,則可以使用如下語句:

dic = {'aa':3,'bb':5,'cc':4,'dd':4}
d1 = sorted(dic.items(),key = lambda item:item[1],reverse=True)
d2 = sorted(dic.items(),key=lambda x: (x[1], x[0]),reverse=True)
print(d1)
print(d2)

2. 對列表進行排序:和字典排序很類似,但由於列表本身就是可迭代物件,故sorted的第一個引數只需傳入列表本身即可。

下面這個列子是先按數字進行逆序排序,數字相同時,按字母正序排序

注意:只有當x[1]為數值型變數時,才能再前面加負號表示逆序排序,如果是字串,加負號會出錯。

top_n = [('butter', 2), ('bought', 1), ('of', 1),  ('a', 1)]
top_n = sorted(top_n,key=lambda x: (-x[1], x[0]))
print(top_n)


相關推薦

Python sorted字典列表進行排序

1. 按鍵值對對字典進行排序sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。    其中iterable表示可以迭代的物件,例如可以是dict.items()、dict.keys()等,key是一

pythonsorted函式字典按value進行排序

場景:詞頻統計時候,我們往往要對頻率進行排序 sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。其中iterable表示可以迭代的物件,例如可以是dict.items()、dict.keys()等,key是一個函式,用來選取參與比

Python sorted 函式,字典按值進行排序

字典實際上並不能排序,我們排的是items,即dict.items(),將字典轉換成了一個列表sorted函式的原型為:sorted(iterable[, cmp[, key[, reverse]]])iterable:是可迭代型別型別;cmp:用於比較的函式,比較什麼由key決定,有預設值,迭代集合中的一

python學習--根據字典中的值的大小,字典的項進行排序

比較 value 函數返回值 randint for python common spa pri 首先生成一個隨機字典: from random import randintd={x:randint(60,99) for x in "abcdefg"} # {‘a‘:

python中如何字典按照value進行排序

方法一: dict= {'a':1,'b':4,'c':2} sorted(dict.items(),key = lambda x:x[1],reverse = True) 程式碼詳解: sorted(...):     sorted(iterable,

python的裏字典列表

創建 裏的 指定 ems 可能 .com 鍵值 pop new 字典dict 創建字典的2種方法 dic={‘k1‘:‘v1‘,‘k2‘:‘v2‘} #方法一 dic=dict(k1=‘v1‘,k2=‘v2‘) #方法二,兩個相等 提

如何使用python二維陣列進行排序

1、複合排序 直接用numpy的lexsort就可以 import numpy as np data = np.array([[1,2,3,4,5], [1,2,3,6,7], [2,3,4,5,7], [3,4,5,6,7], [4,5,6,7,8]]) idex=np.lexsort([-1*d

javaList型列表進行排序(通過內部類compare(**)方法重寫)

Collections.sort(upgradeUsefulList, new Comparator<List<Object>>(){     public int compare(List&l

pandas學習:seriesdataframe進行排序

本問主要寫根據索引或者值對series和dataframe進行排序的方法 程式碼: #coding=utf-8 import pandas as pd import numpy as np #以下實現排序功能。 series=pd.Series([3,4,1,6],inde

Python學習——輸入的數字進行排序

要求,輸入一串數字,並以列表的形式打印出來。 number = input('請輸入一串數字:') print(number) print(type(number))假設輸入12345,得到結果如下: 請輸入一串數字:12345 12345 <class 'str

iOS中字典的key進行排序

思路是將所有的key取出來,最後呼叫NSArray的排序方法進行排序。程式碼如下: // 將key排序 NSArray *keys = dictionary.allKeys; keys = [keys sortedArrayUsingComparator:^N

python關於字典巢狀字典列表巢狀字典根據值進行排序

python 對於字典巢狀字典, 列表巢狀字典排序 例:列表巢狀自字典:d = [{"name": '張三', 's': 68}, {'name': '李四', 's': 97}] 對於列表巢狀字典可以使用python的sorted()方法,也可以使用list的sort()方法: sorted方法可接受

python用sort()函式列表進行排序,從最後一個元素開始判斷

直接上程式碼: a = [1, 2, 3, 4, 4, 5, 6, 7, 7, 9, 0]a.sort()last = a[-1]for i in range(len(a)-2, -1, -1): if last == a[i]: del a[i] else: las

列表中的多個字典的值進行排序

現在有一個列表,根據每個字典的值進行排序。  dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack": 56}] 思路:我們可以將列表中的字典先放入到

Python字典列表進行去重追加

update 分離 lan 無法 one _for tin format 之間 [TOC] 目標 現有字典列表 # A = [ {dict1}, {dict2} ] B = [ {dict3}, {dict2} ] C = [ {dict3

python通過字典排序json欄位進行排序

dic = dict() dic['a'] = 1 dic['b'] = 2 dic['c'] = 3 print(dic.items()) import json jsons = json.dum

python接口自動化,接口參數存在字典列表嵌套的問題

數字 返回 alt log 錯誤 value 接口自動化 需要 pytho 1.如下圖,服務端一直返回參數格式錯誤,但一直沒找到原因 2.第二天偶然發現是因為少了引號,在python字典中,value的值一定需要引號(除了數字) 3.0000直接寫會被識別成0,需要

python根據字典的值進行排序

字典 blog 取出 運行 log 排序規則 style value 代碼實現 有一個列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d": 3}], 他們的值是不一樣的, 現在要根據值進行排序: 思路:對於值排序,首先把字

讀寫文件、文件方法、python2的亂碼問題、pythonpasswd文件進行排序

__main__ .com 哈哈 == nco star 9.png mar ges 讀寫文件 if __name__==‘__main__‘: filename=input(‘請輸入保存的文件:‘) fdfile=open(filename,‘w+‘)

python字典的key值進行修改的方法

參考瞭如下網站的方法,自己簡單改寫了對應函式。 https://stackoverflow.com/questions/21201661/key-must-not-contain-error-in-pymongo 修改字典的key,最好的方式就是新增一個key-value,value為之前的值;