一、列表生成式

1、列表生成式就是python内置的一种用来生成list的生成式。

比如下面这个例子:

l=[]

for i in range(10)

  list.append(i)

生成一个列表要用循环语句此次添加元素。如果我们用列表生成式,一句话即可:

l=[i for i in range(10)] #这个生成式的操作是,for循环执行后得到的i,返回给前面的i。这样执行结束后,l=[0,1,2,3,4,5,6,7,8,9]

l1=[str(num).zfill(2) for n0um in l]# for循环遍历l,得到的值返回给前面的num,然后做操作str(num).zfill(2).用0补充到2位。最终结果l1=[00,01,02,03,04,05,06,07,08,09]

2、如果生成式用()括起来,最终结果就是不是一个list,而是一个生成器

l2 = ( i  for i in range(1,101,2) )  #生成100以内的奇数 #  如果print(l2)结果会是 <generator object <genexpr> at 0x02C88E10>
for j in l2: #l2是一个生成器,可以循环读出生成器的数据
print(j)

生成式和生成器的区别:

生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面。每次只占用一个空间,用一个生成一个。但是效率低
list它是把所有的元素都放在内存里面的,占用空间多。但是效率高

3、三元表达式
   三元表达式也是一行写出。用if--else。如果if条件成立,则执行if前的语句,否则执行else语句

举例:

a=1

b=2

c= a if a>b else b  #如果a>b,则执行if前的a,也就是c=a.。否则执行else也就是c=b

4、匿名函数lambda

匿名函数
lambda x: x+1 #冒号后面的是函数体,也是函数的处理逻辑,冒号前面的返回值

举例:

d = {'a':8,'b':2,'c':3}#定义一个字典

res = sorted(d.items(),key=lambda x:x[1]) #对字典进行排序。先取出字典的所有元组d.items().然后根据关键字排序。lambda x:x[1]就表示先取x[1],在d.items()获取到的list中,x[1]也就是字典中的value.然后将x[1]传给x,最终d.items根据value排序
结果就是:[('b', 2), ('c', 3), ('a', 8)]

python:列表生成式和三元表达式、匿名函数的更多相关文章

  1. Python学习之==>内置函数、列表生成式、三元表达式

    一.内置函数 所谓内置函数就是Python自带的函数 print(all([0,2,3,4])) #判断可迭代的对象里面的值是否都为真 print(any([0,1,2,3,4])) #判断可迭代的对 ...

  2. Python 非空即真、列表生成式、三元表达式 day3

    一.非空即真: Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false 布尔型,False表示False,其他为True 整数和浮点数,0表示False,其他为 ...

  3. Day13有参装饰器,三元表达式,匿名函数

    多个装饰器: 加载顺序:由下而上 执行顺序:由上而下 有参装饰器: 闭包,给函数传参的一种方法 当装饰器内需要参数时,可以采用闭包形式给其传参,第三层函数接收完参数时,就变为无参装饰器 三元表达式: ...

  4. python预课03 三元表达式示例,函数定义示例,七段彩码管绘制示例

    三元表达式 s = '不下雨' if s == '下雨': print('带伞') if s == '不下雨': print('不带伞') #等效与以下语句 print('带伞' if s == '下 ...

  5. python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)

    1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...

  6. CSIC_716_20191114【生成器、匿名函数、内置函数、三元表达式、列表生成式、生成器表达式】

    生成器: 函数与yield连用,凡是函数中有yield的,调用该函数的时候均不会立即执行,而是会返回一个生成器. 生成器本质上是一个迭代器,需要通过    [生成器.__next__()]或者[nex ...

  7. python 之 列表生成式、生成器表达式、模块导入

    5.16 列表生成式 l=[]for i in range(100):    l.append('egg%s' %i)print(l)​l=['egg%s' %i for i in range(100 ...

  8. Python中的列表生成式和多层表达式

    Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...

  9. [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口

    函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...

随机推荐

  1. java 多态一

    一 多态的概述 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学 生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个事物的多种形态.如Studen ...

  2. 如何为你的IDEA安装插件——几个实用插件推荐

    文章目录 如何为你的IDEA安装插件--几个实用插件推荐 安装插件 插件推荐 1.Background Image Plus 2.Translation 3.CodeGlance 4.Rainbow ...

  3. 面试题——20+Vue面试题整理

    0.那你能讲一讲MVVM吗? MVVM是Model-View-ViewModel缩写,也就是把MVC中的Controller演变成ViewModel. Model层代表数据模型,View代表UI组件, ...

  4. Exception processing template "success": Exception parsing document: template="success",

    代码很简单 package com.kele.controller; import org.springframework.stereotype.Controller;import org.sprin ...

  5. Linux top详解

    命令 top 参数说明: d:改变显示的更新速度 q:  没有任何延迟的显示速度 c:切换显示模式,共有两种模式,一是只显示执行档的名称,零一种显示完整的路径与名称S:累计模式,会将已完成或消失的子行 ...

  6. SpringBoot---关于 WebMvcConfigurerAdapter 过时问题及解决方法

    SpringBoot---关于 WebMvcConfigurerAdapter 过时问题及解决方法 环境: IDEA :2020.1 Maven:3.5.6 SpringBoot: 2.3.2 在Sp ...

  7. Visual Studio自动编译gRPC工程的设置

    前段时间研究一个java程序,增加一些功能.其中用到java和C#的通信.自然,有多种办法,后来实际上是用javascript调用C#的REST WCF服务实现的.但是在查资料的过程中,发现有个Pro ...

  8. MySQL标识列(自增长列)

    #标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值 特点:1.标识列必须和主键搭配吗?不一定,但要求是一个key2.一个表可以有几个标识列?至多一个!3.标识列的类型只能是数值 ...

  9. Django中views数据查询使用locals()函数进行优化

    优化场景 利用视图函数(views)查询数据之后可以通过上下文context.字典.列表等方式将数据传递给HTML模板,由template引擎接收数据并完成解析.但是通过context传递数据可能就存 ...

  10. JS 对象基本用法

    声明对象的两种语法 let obj = { 'name': 'frank', 'age': 18 } let obj = new Object({'name': 'frank'}) 如何删除对象的属性 ...