在列表中按字母顺序对字典进行排序

Sorting dictionaries alphabetically inside the list

我无法在列表中对我的词典进行排序。

不幸的是,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' 之前的字母表中。

提前感谢您的帮助

你想要的是集合(不是字典——那些包含key-value对)名称列表的词法排序,方法是首先对名称进行排序,然后再进行排序名称集。 为此,您必须将集合转换为排序列表(幸运的是 sorted 已经为您完成了此操作),然后可以对其进行排序 - 首先对名称进行排序,然后使用 [=12 按字典顺序对已排序名称的列表进行排序=]:

names_to_sort = sorted(map(sorted, names_to_sort))

产生了想要的结果(除了显然不是集合);如果你想要集合,只需将列表转换回集合:

names_to_sort = list(map(set, names_to_sort))