[英]Sort Python Dictionary Objects in a List
我正在嘗試使用字典鍵以升序對列表進行排序。
您可以假設每個詞典級別只有一個鍵。
輸入:
res = [{'hi': {'abc': 5}}, {'bye': {'def': 5}}, {'hi': {'cba': 5}}]
我的代碼:
def getitem (item):
return (item.keys())
print (sorted(res, key = getitem))
要求的輸出:
[{'bye': {'def': 5}}, {'hi': {'abc': 5}}, {'hi': {'cba': 5}}]
您已經接近了-只需將dict傳遞到iter()
以創建一個迭代器,然后在迭代器中請求next()
項。 如果存在多個,則按字典中的第一個鍵排序(Python 3.6+字典按插入時間排序)。 比較器可以返回相對優先級的元組,如果外部鍵相等,則可以對內部鍵進行排序。
res = [{'hi': {'abc': 5}}, {'bye': {'def': 5}}, {'hi': {'cba': 5}}]
def compare(d):
outer = next(iter(d))
return outer, next(iter(d[outer]))
print(sorted(res, key=compare))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.