美文网首页
python 高阶函数 (三)--sorted

python 高阶函数 (三)--sorted

作者: 倔强的潇洒小姐 | 来源:发表于2019-01-18 18:10 被阅读12次

排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。

可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序

a = [36, 5, -3, -21, 103]
a1 = sorted(a)    # [-21, -3, 5, 36, 103]
a2 = sorted(a, key=abs)   # [-3, 5, -21, 36, 103]

对字符串排序

s = ['bob', 'about', 'Zoo', 'Credit']
s1 = sorted(s)   # ['Credit', 'Zoo', 'about', 'bob']
s2 = sorted(s, key=str.lower)  # ['about', 'bob', 'Credit', 'Zoo']
s3 = sorted(s, key=str.lower, reverse=True)   # ['Zoo', 'Credit', 'bob', 'about']
s4 = sorted(s, key=str.upper)  # ['about', 'bob', 'Credit', 'Zoo']

注:用sorted()排序的关键在于实现一个映射函数

练习题:用一组tuple表示学生名字和成绩
1)根据名字排序
2)按成绩从高到低排序

L = [('Bob', 75), ('Adam', 80), ('Bart', 66), ('Lisa', 88)]

def by_name(t):
    return t[0].lower()


def by_score(t):
    return t[1]


L1 = sorted(L, key=by_name)   # [('Adam', 80), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
L2 = sorted(L, key=by_score, reverse=True)   # [('Lisa', 88), ('Adam', 80), ('Bob', 75), ('Bart', 66)]

相关文章

  • python学习-sorted()及实验

    Python内置的sorted()函数就可以对list进行排序:sorted()也是一个高阶函数。用sorted(...

  • sorted

    Python内置的sorted()函数就可以对list进行排序: 此外,sorted()函数也是一个高阶函数,它还...

  • Python 学习笔记 064

    续前节 Python高阶函数 filter的使用 功能 过滤器 filter的使用 示例 高阶函数-sorted...

  • python 高阶函数 (三)--sorted

    排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大...

  • python中列表排序,字典排序,列表中的字典排序

    一、sorted高阶函数 例子: 下面是sorted排序方法的详细解释: sorted高阶函数语法格式: sor...

  • Python sorted

    上一篇我们学习了python的高阶函数和map,reduce的用法,今天我们来看另一个高阶函数 sorted。 排...

  • Python学习打call第二十天:高阶函数

    今天主要学习了Python中sorted,filter, map 三个高阶函数,还了解了一下函数的柯里化; 1.什...

  • python2

    sorted()也是一个高阶函数。用sorted()排序的关键在于实现一个映射函数。 函数作为返回值 高阶函数除了...

  • April 29th_day12_file_operation

    record 1.函数作为变量 实参高阶函数、返回值高阶函数列表.sort(), sorted(), max(),...

  • Python高阶函数sorted排序

    sorted用法 sorted是Python提供的功能强大的排序函数。满足字符,数字等排序要求。 对数字进行排序:...

网友评论

      本文标题:python 高阶函数 (三)--sorted

      本文链接:https://www.haomeiwen.com/subject/gyvqdqtx.html