A. python 字典排序 字典序排序是什麼意思
字典就是包含key:value對的集合
比如
L = [{"name": "zhangsan", "birth":19920208, "gender":"m"}, {"name": "lisi", "birth":19900609, "gender":"m"}, {"name": "wanghong", "birth":19950907, "gender":"f"}]
對字典排序就是對列表進行排序後列印:
from operator import itemgetter
L = sorted(L,key=itemgetter('birth'),reverse=True)
for i in range(0,len(L)):
... print("Name: {:10} Gender: {:2} Birth: {}".format(L[i]["name"],L[i]["gender"],L[i]["birth"]))
B. python字典排序問題
python字典里根本就沒順序,即便你用鍵值大小排序,那你也把所有簡直放到一個列表裡比較下才能找到最值,最終還是在列表裡完成的排序。
C. Python字典排序問題
有的,你可以使用第三方庫sortedcontainers,可以使用pip安裝它。它由純Python和快速C實現,能夠按順序自動維護鍵,而且速度非常快。下面是演示
from sortedcontainers import SortedDict
sd = SortedDict({'c': 3, 'a': 1, 'b': 2})
print(sd)
輸出:
SortedDict({'a': 1, 'b': 2, 'c': 3})
D. Python怎麼排序字典,當字典里的值都是一個類的實例化對象,鍵為不同的字元串,根據實例化對象的值x排序
http://www.360doc.cn/article/16740871_381432205.html
很容易,調用函數按值排序就好了。
E. python字典中根據值的大小,按順序排列鍵有什麼方法
s={"a":"bb","b":"cc","c":"aa"}
deffun(s):
d=sorted(s.iteritems(),key=lambdat:t[1],reverse=False)
returnd
d=fun(s)
printd
iteritems() 得到的[(鍵,值)]的列表, 通過sorted方法,指定排序的鍵值key是原來字典中的value屬性,其中用到了匿名函數lambda, 參數為t列表,返回第二個元素t[1],也就是每個鍵值對中的value, 從小到大排序時 reverse=False,從大到小排序是True!
F. python中字典能排序嗎
字典本身就是無序的,也就不存在排序。
但是可以參照鍵、值,就行排序輸出元組列表,
例如圖中例子
G. python字典是否有序
默認情況下Python的字典輸出順序是按照鍵的創建順序。
字典的無序是指,不能人為重新排序。
比如說你按鍵值1,2,3,4的順序創建的字典,只能由解析器按創建順序,還是1,2,3,4的輸出。
你無法控制它按照4,3,2,1的順序輸出,你也無法做到1,3,2,4的順序。
而且這個輸出順序是也不是能真正按照創建順序可以控的。
這裡面有兩個影響因素:
(1)鍵值的哈希碰撞,hash(key1) == hash(key2)時,向字典里連續添加的這個兩個鍵的順序是不可以控制的,也是無法做到連續的,後來的鍵會按演算法調整到其它位置。
(2)字典空間擴容,當鍵的數量超過字典默認開的空間時,字典會做空間擴容,擴容後的鍵順和創建順序就會發生變化,不受人為控制。
H. python 字典排序問題 有如下字典,怎麼通過key最後面的數字排序,求大神指教。
python中字典存儲是無序的,不像元組或列表那樣需要通過順序來取值。字典存儲類型為key/value、一個鍵一個值,取值需要key,獲取key用值。沒明白你說的「通過key最後面的數字排序」是什麼意思,詳細描述一下需求