Python 高阶函数 -- Sorted

详细内容请参考廖雪峰官网,此处只是一些摘抄,心得与练习的coding。

  1. Python内置的sorted()函数就可以对list进行排序:

    >>> sorted([36, 5, -12, 9, -21])
    [-21, -12, 5, 9, 36]
  2. sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
    >>> sorted([36, 5, -12, 9, -21], key=abs)
    [5, 9, -12, -21, 36]
  3. 这里必须强调的是sorted只会把第一个参数list的元素逐个传入到key指定的函数中,并不是把整个List传入。
  4. 要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True
    >>> sorted([‘bob‘, ‘about‘, ‘Zoo‘, ‘Credit‘], key=str.lower, reverse=True)
    [‘Zoo‘, ‘Credit‘, ‘bob‘, ‘about‘]
  5. sorted()排序的关键在于实现一个映射函数。
  6. 练习
    1.  假设我们用一组tuple表示学生名字和成绩:

      L = [(‘Bob‘, 75), (‘Adam‘, 92), (‘Bart‘, 66), (‘Lisa‘, 88)]
      

      请用sorted()对上述列表分别按名字排序:

      # -*- coding: utf-8 -*-
      L = [(‘Bob‘, 75), (‘Adam‘, 92), (‘Bart‘, 66), (‘Lisa‘, 88)]
      def by_name(t):
          return t[0]
      
      L2 = sorted(L, key=by_name)
      print(L2)
    2. 再按成绩从高到低排序:
      # -*- coding: utf-8 -*-
      L = [(‘Bob‘, 75), (‘Adam‘, 92), (‘Bart‘, 66), (‘Lisa‘, 88)]
      def by_score(t):
          return t[1]
      
      L2 = sorted(L, key=by_score)
      print(L2)

原文地址:https://www.cnblogs.com/ChrisK/p/9462846.html

时间: 2024-09-30 04:23:03

Python 高阶函数 -- Sorted的相关文章

python 高阶函数详解。

1,概念: Iterable 和 IteratorIterable 表示该变量可以被 for in 进行迭代.Iterator 表示该变量可以被 next(o)进行迭代(上一个表示有限迭代,下一个表示一个惰性的迭代概念,可以无限迭代.)一般的Iterable 的变量有:L=[{},[],(1,),{3:4},{3,4}]for x in L:print(isinstance(x,Iterable))print(isinstance(x,Iterator)) truefalse 可见,基础变量Li

python高阶函数的使用

目录 python高阶函数的使用 1.map 2.reduce 3.filter 4.sorted 5.小结 python高阶函数的使用 1.map Python内建了map()函数,map()函数接受两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每一个元素上,并把结果作为新的Iterator返回. 举例说明,比如我们有一个函数f(x)=x*2,要把这个函数作用在一个list[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现. >>

Python高阶函数_map/reduce/filter函数

本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你就能大概明白map/reduce的概念. 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序

python 高阶函数三 filter()和sorted()

一.filter()函数 filter()接收一个函数和一个序列.filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素. 1 >>> from collections import Iterator 2 >>> def is_odd(n): 3 ... return n % 2 == 1 4 ... 5 >>> it = filter(is_odd, [1, 2, 3, 4, 5, 6]) 6 &

[py][lc]python高阶函数(匿名/map/reduce/sorted)

匿名函数 f = lambda x: x * x f(2) # x =2 #4 - 传入列表 f = lambda x: x[2] print(f([1, 2, 3])) # x = [1,2,3] map使用 传入函数体 def f(x): return x*x r = map(f, [1, 2, 3, 4]) #函数作用在可迭代对象的每一项 #[1, 4, 9, 16] - 另一个例子 list(map([1, 2, 3, 4, 5, 6, 7, 8, 9], lambda x: x * x

Python: 高阶函数与lambda表达式

缘由: python语法简单一看就会,但用在实处,想因为少于实战,总感觉有些捉襟. 翻阅跟踪youtube_dl源码,看到filter()函数用法,及其中lambda表达式,感觉好有意思,就补下课,记录所思. 1. 高阶函数 所谓高阶函数,即是能接受函数做参数的函数.函数做参,与c#委托.c++函数指针.Delphi事件有类似之处 比如: def my_func(f, *args): f(args) def my_print(s): print ', '.join(s) my_func(my_p

函数式编程--高阶函数--sorted

定义 sorted函数可以list进行排序 #sorted可以对list进行排序 L=[3,7,-11,10,6] print(sorted(L)) sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序.例如按绝对值大小排序: #接受一个abs,按照绝对值排序 print(sorted(L,key=abs)) 以上两个输出结果为: [-11, 3, 6, 7, 10] [3, 6,

16. Python 高阶函数、匿名函数

1.      高阶函数 高阶函数就是把函数当成参数传递的一种函数 举例: def add(x, y, f): return f(x) + f(y) print (add(-8, 11, abs)) 返回结果: 19 ① map() 函数 map() 函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例: lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] def f(x): return x * x map(

day12——Python高阶函数及匿名函数

高阶函数:就是把函数当成参数传递的一种函数,例如: def add(x,y,f): return f(x) + f(y) print(add(-8,11,abs)) 结果:19 解释: 1.调用add函数,分别执行abs(-8)和abs(11),分别计算出他们的值 2.最后再做和运算 map()函数 map函数时Python内置的一个高阶函数,它接受一个函数f和一个list,并把list的元素以此传递给函数f,然后返回一个函数f处理完所有list元素的列表,如下所示: def f2(x): re