#匿名函数
lambda 参数: 表达式
关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字。

  • ambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

例子:对比cpp来说很简单了

list_str=['test', None, '', 'str', ' ', 'END']

data = filter(lambda str:str and len(str.strip())>0, list_str)
print('data: ', data, 'list(data): ',list(data))
#为什么filter输出是字符串list

map_data=map(lambda str:str and len(str.strip())>0, list_str)
print('map_data:', map_data, 'list(map_data): ', list(map_data))
#为什么map这边则是bool类型的list

不过上述存在未知,为什么map返回的不是str还是bool类型的list

sort:

cmp在py3.x已经取消了,

取而代之的是sort/sorted

Python3.x_FAQ:

sorted(iterable, key=None, reverse=False)

  reverse是一个布尔值。如果设置为True,列表元素将被倒序排列,默认为False
  key接受一个函数,这个函数只接受一个元素,默认为None
  Key的作用原理

  Python2中的**自定义布尔函数cmp=custom_cmp(x, y)由Python3中的key=custom_key(x)**代替。

  在python3中,待比较元素x通过custom_key函数转化为Python能比较的值custom_key(x),进而再基于返回值进行排序。

例子:【以下代码会将类实例按照大小升序排序

'''

class Person(object):
  def __init__(self):
    self.name=''
  def getName(self):
    return self.name

p1 = Person()
p1.name = 'Bart'

p2 = Person()
p2.name = 'Adam'

p3 = Person()
p3.name = 'Lisa'

L1 = [p1, p2, p3]
L1.sort(key = lambda x:x.getName(),reverse=False)#true为降序

print(L1[0].getName())
print(L1[1].getName())
print(L1[2].getName())

>>>

Adam
Bart
Lisa

'''

Python官方FAQ:

sortediterable*key = Nonereverse = False 

  从iterable的项返回一个新的排序列表。

  有两个可选参数,必须指定为关键字参数。

  key指定一个参数的函数,该函数用于从iterable中的每个元素中提取比较键(例如,key=str.lower)。默认值为None(直接比较元素)。

  reverse是一个布尔值。如果设置为True,则列表元素将按照每个比较相反的方式进行 排序。

  用functools.cmp_to_key()一个老式的转换CMP功能的 关键功能。

  内置功能保证稳定。如果排序保证不更改比较相等的元素的相对顺序,

  则排序是稳定的 - 这有助于在多个过程中进行排序(例如,按部门排序,然后按工资等级排序)。

例子:
L = ['Bart', 'Adam', 'Lisa']
L2 = sorted(L2,reverse=True) #False升序/True为降序

>>>

Lisa
Bart
Adam

python3.x 匿名函数lambda_扩展sort的更多相关文章

  1. python3中匿名函数做参数,匿名函数做实参,eval关键字

    一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...

  2. 【Python3之匿名函数及递归】

    一.匿名函数及内置函数补充 1.语法 Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数. 语法: lambda [arg1[, arg2, . ...

  3. Python3之匿名函数

    当我们在传入函数时,有些时候,不需要显式定义函数.直接传入匿名函数更方便,例如 >>> list(map(lambda x:x*x,[1,2,3,4,5,6,7,8,9])) [1, ...

  4. python3 之 匿名函数

    一.语法: lambda 参数:方法(或三元运算) #最多支持3元运算 二.实例1:基础 #函数1: a = lambda x:x*x print(a(2)) #函数2: def myfun(x): ...

  5. 『Python基础-14』匿名函数 `lambda`

    匿名函数和关键字lambda 匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数 在Python中,如果要声匿名函数,则需要使用lambda关键字 使用lambda声明的匿名函数能接收任何 ...

  6. 自学Python3.4-函数分类(匿名函数)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  7. Python3:sorted()函数及列表中的sort()函数

    一.sort,sorted函数介绍:   Sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序.   下面我们使用help来查看他们的用法及功能: sort: ...

  8. Python3 匿名函数

    一 匿名函数 lambda函数也叫匿名函数,语法结构如下: lambda x:x+1 x --> 形参 x+1 --> 返回值,相当于return x+1 实例(Python3.0+): ...

  9. Python3 内置函数补充匿名函数

    Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...

随机推荐

  1. 插入排序->希尔排序

    /** * 插入排序 */ public class InsertSort { public static void main(String[] args){ int[] arr = {5,5,2,6 ...

  2. RabbitMQ:伪延时队列

    目录 一.什么是延时队列 二.RabbitMQ实现 三. 延时队列的问题 四.解决RabbitMQ的伪延时方案 ps:伪延时队列先卖个关子,我们先了解下延时队列. 一.什么是延时队列 所谓延时队列是指 ...

  3. JavaSE---JDK提供的命令行工具---javap

    1.javap 1.1 javap是JDK自带的反解析工具: 1.2 作用:就是根据class字节码文件,反解析出    当前类   对应的code区(汇编指令).本地变量表.异常表和代码行偏移量映射 ...

  4. JS中JSON.stringify()方法,将js对象(json串)转换成字符串,传入服务器

    JSON 通常用于与服务端交换数据. 在向服务器发送数据时一般是字符串. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串. 语法 JSON.string ...

  5. vue自定义抽屉组件

    <template> <div class="drawer"> <div :class="maskClass" @click=&q ...

  6. 单词计数-MapReduceJob

    pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...

  7. fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程

    系统之家 发布时间:18-05-3117:56 很多Win7用户在复制较大的文件时,系统会弹出窗口提示“对于目标文件系统,文件XXX过大”,出现这种情况的原因是FAT32的文件系统不支持复制大于4g的 ...

  8. oo_project_1

    Project 1题目要求分析: 实现多项式的加减运算,主要问题是解决输入格式的判断问题. 输入实例: {(3,0), (2,2), (12,3)} + {(3,1), (-5,3)} – {(-19 ...

  9. 后台获取html控件的值

    string name = Request.Form["Name1"].ToString(); “xxx” 里的是name值 Request["xx"]取到相同 ...

  10. luoguP1082 同余方程 题解(NOIP2012)(数论)

    luoguP1082 同余方程 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include& ...