5函数式编程---高阶函数sorted()

    xiaoxiao2021-12-14  22

    1.python内置的sorted()函数可以对list进行排序: sorted([1,7,5,-6,3])>>>[-6, 1, 3, 5, 7]

    sorted()是一个高阶函数,可以接收一个key函数,来实行自定义排序。例如按绝对值大小排序:

    >>> sorted([1,7,5,-6,3],key = abs) [1, 3, 5, -6, 7]

    2.对英文字符串按字母顺序进行排序:

    >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) ['about', 'bob', 'Credit', 'Zoo']

    3.要进行反向排序,不必改动key函数,可以传入参数reverse=True:

    >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower,reverse = True) ['Zoo', 'Credit', 'bob', 'about']

    小结:

    sorted是一个高阶函数,用sorted()排序的关键在于实现一个映射函数。

    例题:L = [('Bob', 75), ('Adam', 92), ('Wart', 66), ('Lisa', 88)]

    对L进行按字母顺序排序

    def by_name(t): return t[0] L2 = sorted(L,key = by_name) print(L2)--->>>[('Adam', 92), ('Bob', 75), ('Lisa', 88), ('Wart', 66)]

    对L进行按数字大小排序

    def by_num(t): return t[1] L3 = sorted(L,key = by_num) print(L3)--->>>[('Wart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]

    小结:通过以上例子发现,sorted(L,key)中,key是依次作用于L中的元素,key函数指定了作用于L元素的方法。结合下面的图片,可能会有更深的理解。

    转载请注明原文地址: https://ju.6miu.com/read-963891.html

    最新回复(0)