簡體   English   中英

python:如何按字母順序對字典值列表進行排序,保持字典的順序相同,而不是按值對字典進行排序

[英]python : how to order lists of dictionary values alphabetically, keeping to order of the dictionary the same, not sorting the dict by value

有沒有一種簡單的方法可以按字母順序對字典中的值列表重新排序,同時保持鍵的順序相同? 我不打算按值對字典進行排序,只是按字母順序排列它們的列表。 謝謝

假設您想獨立於鍵對值進行排序(這可以更改鍵:值關聯),您可以創建一個新字典:

d = {'b': 1, 'c': 0, 'a': 2}

d2 = dict(zip(d, sorted(d.values())))

Output: {'b': 0, 'c': 1, 'a': 2}

也許我想多了,你只想:

sorted(d.values())
# [0, 1, 2]

假設您只是不關心舊數據排序,您可以運行這個 function:

    def alphabetizeDictValues(dictionary):
       for key in dictionary:
           dictionary[key].sort()

列表的 sort function 就地對列表進行排序(使其有損),因此這僅在您不關心舊順序時才有效。 這意味着 memory 要求較低,但也意味着您沒有參考您的列表之前的排序方式。 或者,如果您想保存舊的順序,您可以創建這個 function

    def alphabetizeDictValues(dictionary):
       dupeDictionary = {}
       for key in dictionary:
           oldLst = list(dictionary[key])
           dupeDictionary[key] = oldLst
           dictionary[key].sort()
       return dupeDictionary

這將返回輸入字典的副本(列表未排序),而您傳入的字典將是排序后的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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