簡體   English   中英

在列表中對Python字典對象進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM