如何对具有多个属性和unicode字符串的python字典进行排序

2024-05-21 03:22:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含艺术家及其专辑的字符串的字典列表(从Spotify获取)。我想先把这本词典按艺术家分类,然后按相册分类。但是我想使用区域设置感知排序(在我的例子中是德语)。你知道吗

我发现我可以用多个键对字典列表进行排序,如下所示:

somelist.sort(key=lambda k: (k['artist'].lower(), k["album"].lower()))

.lower因为我需要不区分大小写的排序。你知道吗

这适用于以英语命名的艺术家和专辑,但不适用于非英语。我还发现,对于区域设置感知排序,我可以使用somelist.sort(key=locale.strxfrm)。你知道吗

我不明白的是:如何将区域设置感知和多个键排序结合起来?你知道吗


Tags: key字符串区域列表字典排序分类sort
1条回答
网友
1楼 · 发布于 2024-05-21 03:22:06

为什么不把两者结合起来呢?你知道吗

def normalizeSortString(s):
    return local.strxfrm(s).lower()

def getSortKey(k):
    return (normalizeSortString(k['artist']), normalizeSortString(k["album"]))

somelist.sort(key=getSortKey)

相关问题 更多 >