[lang-ref] ( sort_by_custom_func ) ( python )

def test_sort_by_custom_func():
    items = [-5, -3, -1, 0, 2, 4, 6]
    expected = [0, -1, 2, -3, 4, -5, 6]

    r1 = sorted(items, key=lambda x: abs(x))
    r2 = sorted(items, key=abs)

    assert r1 == expected
    assert r2 == expected

    def myfunc(x):
        return abs(x)

    r3 = sorted(items, key=myfunc)

    assert r3 == expected

    # Note: In Python 2, you could pass a cmp function:
    # sorted(items, cmp=lambda x, y: cmp(abs(x), abs(y)))