我無法在串列中對我的字典進行排序。
不幸的是, sorted 函式不能按我想要的方式作業。
(以下是我的代碼)
names_to_sort = [{'Karwinski', 'Bandyciak', 'Anoniasz'}, {'Aajacykowa', 'Tomaszek', 'Kochanowa'}] #sample names
names_to_sort = sorted(names_to_sort)
print(names_to_sort)
#expected result
# [{'Aajacykowa', 'Kochanowa', 'Tomaszek'}, {'Anoniasz', 'Bandyciak', 'Karwinski', } ]
彼此內部的字典應按字母順序排序。
此外,字典應該按照字典中的名字來組織。因此,如果字典 1 中'Anonias'的名字是,字典 2 中的名字是,'Aajacykowa'那么字典應該交換位置,因為'Aajacykowa'在字母表之前'Anonias'。
預先感謝您的幫助
uj5u.com熱心網友回復:
您想要的是通過首先對名稱進行排序,然后對名稱集進行排序來對名稱集(不是字典 - 包含鍵值對的)串列進行詞匯排序。為此,您必須將集合轉換為排序串列(幸運的是sorted已經為您完成了此操作),然后可以對其進行排序 - 首先對名稱進行排序,然后使用按字典順序對排序名稱串列進行排序sorted:
names_to_sort = sorted(map(sorted, names_to_sort))
產生期望的結果(除非顯然不是集合);如果你想要集合,只需將串列轉換回集合:
names_to_sort = list(map(set, names_to_sort))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/444395.html
