python:列表生成式和三元表达式、匿名函数
一、列表生成式
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:列表生成式和三元表达式、匿名函数的更多相关文章
- Python学习之==>内置函数、列表生成式、三元表达式
一.内置函数 所谓内置函数就是Python自带的函数 print(all([0,2,3,4])) #判断可迭代的对象里面的值是否都为真 print(any([0,1,2,3,4])) #判断可迭代的对 ...
- Python 非空即真、列表生成式、三元表达式 day3
一.非空即真: Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false 布尔型,False表示False,其他为True 整数和浮点数,0表示False,其他为 ...
- Day13有参装饰器,三元表达式,匿名函数
多个装饰器: 加载顺序:由下而上 执行顺序:由上而下 有参装饰器: 闭包,给函数传参的一种方法 当装饰器内需要参数时,可以采用闭包形式给其传参,第三层函数接收完参数时,就变为无参装饰器 三元表达式: ...
- python预课03 三元表达式示例,函数定义示例,七段彩码管绘制示例
三元表达式 s = '不下雨' if s == '下雨': print('带伞') if s == '不下雨': print('不带伞') #等效与以下语句 print('带伞' if s == '下 ...
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...
- CSIC_716_20191114【生成器、匿名函数、内置函数、三元表达式、列表生成式、生成器表达式】
生成器: 函数与yield连用,凡是函数中有yield的,调用该函数的时候均不会立即执行,而是会返回一个生成器. 生成器本质上是一个迭代器,需要通过 [生成器.__next__()]或者[nex ...
- 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 ...
- Python中的列表生成式和多层表达式
Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...
- [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口
函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...
随机推荐
- C++游戏(大型PC端枪战游戏)服务器架构
实习期间深入参与到某大型pc端枪战游戏的后端开发中,此游戏由著名游戏工作室编写,代码可读性极高,自由时间对游戏后台代码进行了深入研究,在满足自身工作需要的同时对游戏后台的架构也有了理解,记录在此,以便 ...
- Dubbo系列之 (二)Registry注册中心-注册(2)
引导 本章主要介绍下AbstractRegistry.FailbackRegistry的作用和源码. AbstractRegistry 首先,直接引出这个类的作用,该类主要把服务提供者信息缓存本地文件 ...
- 第三章 kubernetes核心原理
kubernetes API Server 提供了Kubernetes各类资源对象(如pod,re,service等)的增删改查及watch等Http Rest接口,成为集群内各个功能模块之间数据交互 ...
- Android 重写物理返回键,在h5页面中返回上一个界面
实现:Activity中放置webview,跳转到h5界面,点击返回键,不退出h5界面,而是返回上一个h5界面 /** * 改写物理按键--返回的逻辑,希望浏览的网页后退而不是退出浏览器 * @par ...
- Vue3 + Element ui 后台管理系统
Vue3 + Element ui 后台管理系统 概述:这是一个用vue3.0和element搭建的后台管理系统界面. 项目git地址: https://github.com/whiskyma/vu ...
- Istio Routing 实践掌握virtualservice/gateway/destinationrule/AB版本发布/金丝雀发布
原文 在学习像 Istio 这样的新技术时,看一下示例应用程序总是一个好主意. Istio repo 有一些示例应用程序,但它们似乎有各种不足. 文档中的 BookInfo 是一个很好的示例. 但是, ...
- 修改linux服务器的时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate 1.asia.pool.ntp.org 如果出现如下错误 21 Jul 01:0 ...
- JavaSwing关于GridBagLayout(网格袋布局)的使用
下面的链接有初步的介绍: https://blog.csdn.net/xietansheng/article/details/72814552 关于GridBagConstraints: GridBa ...
- Jmeter 常用函数(4)- 详解 __setProperty
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 前言 有看我之前写的 Jmeter 文章的童 ...
- 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义
上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...