【问题标题】:how do to sort a python dictionary with multiple attributes and unicode strings如何对具有多个属性和 unicode 字符串的 python 字典进行排序
【发布时间】:2016-01-02 19:32:03
【问题描述】:

我有一个字典列表,其中包含一些包含艺术家及其专辑的字符串(从 Spotify 获取)。我想先按艺术家然后按专辑对这本字典进行排序。但我想使用区域感知排序(在我的例子中是德语)。

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

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

.lower 因为我想要一个不区分大小写的排序。

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

我不明白的地方:如何结合区域设置感知和多个键排序?

【问题讨论】:

    标签: python sorting dictionary unicode


    【解决方案1】:

    为什么不组合两者?

    def normalizeSortString(s):
        return local.strxfrm(s).lower()
    
    def getSortKey(k):
        return (normalizeSortString(k['artist']), normalizeSortString(k["album"]))
    
    somelist.sort(key=getSortKey)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 2010-11-09
      相关资源
      最近更新 更多