[lang-ref] ( sorted_by_multiple_keys ) ( python )

def test_sorted_by_multiple_keys():
    # itemgetter or tuple
    from operator import itemgetter
    items = [
        ('Team-A', 980, 3),
        ('Team-B', 980, 2),
        ('Team-C', 970, 9),
    ]
    expected = [
        ('Team-C', 970, 9),
        ('Team-B', 980, 2),
        ('Team-A', 980, 3),
    ]

    r1 = sorted(items, key=itemgetter(1, 2, 0))
    r2 = sorted(items, key=lambda x: (x[1], x[2], x[0]))

    assert r1 == expected
    assert r2 == expected

    # Tip: To sort a specific numeric column in descending order, negate it:
    #      key=lambda x: (x[1], -x[2], x[0])