代码之家  ›  专栏  ›  技术社区  ›  booker

python中未按数字排序的元组列表

  •  -3
  • booker  · 技术社区  · 4 年前

    当我使用此函数按数值降序排列元组列表时:

    data.sort(key=lambda tup: tup[1], reverse=True)
    

    data = [("a", 8001),
            ("b", 8000),
            ("c", 8),
            ("d", 10)]
    

    如何按数字降序排列元组列表?

    2 回复  |  直到 4 年前
        1
  •  1
  •   lejlot    4 年前

    原始代码工作得很好

    >>> data = [("a", 8001),
    ...         ("b", 8000),
    ...         ("c", 8),
    ...         ("d", 10)]
    >>>
    >>> data
    [('a', 8001), ('b', 8000), ('c', 8), ('d', 10)]
    >>> data.sort(key=lambda tup: tup[1], reverse=True)
    >>>
    >>> data
    [('a', 8001), ('b', 8000), ('d', 10), ('c', 8)]
    
        2
  •  -1
  •   enke    4 年前

    尝试:

    sorted(data, key=lambda x: -int(x[1]))
    

    输出:

    [('a', '8001'), ('b', '8000'), ('d', '10'), ('c', '8')]
    

    int

    data.sort(key=lambda tup: int(tup[1]), reverse=True)