三种常见的Python赋值表达式的写法!
Python的赋值表达式英文原名为Assignment Expressions,因为它太像海象了所以又被称为海象运算符。今天小千就来给大家介绍一下三种常见的赋值表达式的写法,大家来了解一下以防将来遇到不认识。
Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。很多 Python 3.8 的特性还没来得及了解,就已经成为旧知识了,比如今天要说的海象运算符。
1、第一个用法:if/else
可能有朋友是第一次接触这个新特性,所以还是简单的介绍一下这个海象运算符有什么用?在 Golang 中的条件语句可以直接在 if 中运算变量的获取后直接对这个变量进行判断,可以让你少写一行代码
若在 Python 3.8 之前,Python 必须得这样子写
但有了海象运算符之后,你可以和 Golang 一样(如果你没学过 Golang,那这里要注意,Golang 中的 := 叫短变量声明,意思是声明并初始化,它和 Python 中的 := 不是一个概念)
2、第二个用法:while
在不使用 海象运算符之前,使用 while 循环来读取文件的时候,你也许会这么写
但有了海象运算符之后,你可以这样
使用它替换以往的无限 while 循环写法更为惊艳比如,实现一个需要命令行交互输入密码并检验的代码,你也许会这样子写
有了海象运算符之后,这样子写更为舒服
3、第三个用法:推导式
这个系列的文章,几乎每篇都能看到推导式的身影,这一篇依旧如此。在编码过程中,我很喜欢使用推导式,在简单的应用场景下,它简洁且不失高效。如下这段代码中,我会使用列表推导式得出所有会员中过于肥胖的人的 bmi 指数
输出如下
可以看到,会员数只有 3 个,但是 get_bmi 函数却执行了 4 次,原因是在判断时执行了 3 次,而在构造新的列表时又重复执行了一遍。如果所有会员都是过于肥胖的,那最终将执行 6 次,这种在大量的数据下是比较浪费性能的,因此对于这种结构,我通常会使用传统的for 循环 + if 判断。
在有了海象运算符之后,你就可以不用在这种场景下做出妥协。
最终从输出结果可以看出,只执行了 3 次
这里仅介绍了列表推导式,但在字典推导式和集合推导式中同样适用。不再演示。海象运算符,是一个新奇的特性,有不少人觉得这样这种特性会破坏代码的可读性。确实在一个新鲜事物刚出来时是会这样,但我相信经过时间的沉淀后,越来越多的人使用它并享受它带来的便利时,这种争议也会慢慢消失在历史的长河中。
本文来自千锋教育,转载请注明出处。
三种常见的Python赋值表达式的写法!相关推荐
- python赋值表达式_6. 表达式
6.表达式¶ 本章将解释 Python 中组成表达式的各种元素的的含义. 语法注释: 在本章和后续章节中,会使用扩展 BNF 标注来描述语法而不是词法分析. 当(某种替代的)语法规则具有如下形式 na ...
- 注解分页查询 oracle,oracle分页查询的三种常见写法
oracle分页查询的三种常见写法分页写法: –分页查询一select * from (select rownum r,e1.* from (select * from emp order by sa ...
- python 赋值、表达式
python 赋值.表达式 赋值的特性 赋值语句建立对象引用 变量名在首次赋值时会被创建 变量名在引用前必须先赋值 赋值语句的形式 序列赋值 >>> A, B = 1, 2 > ...
- python给列表的N个元素赋值-*表达式
python给列表的N个元素赋值-*表达式 # *表达式,给列表的N个元素赋值 list1 = ['aa', 'bb', 'cc', 'dd', 'ee'] a1, *b1, c1 = list1 p ...
- python会不会内存泄露_总结python 三种常见的内存泄漏场景
概要 不要以为 Python 有自动垃圾回收就不会内存泄漏,本着它有"垃圾回收"我有"垃圾代码"的精神,现在总结一下三种常见的内存泄漏场景. 无穷大导致内存泄漏 ...
- Python 3.8 的赋值表达式与海象运算符
1. 简介 Python 3.8 引入了 PEP 572 中描述的新特性--赋值表达式,该语法由 Emily Morehouse 实现.没错,就是下面这个妹子. 2. 语法与语义 赋值表达式,这是 P ...
- python-3.8.0 新特性之赋值表达式
[python-3.8.0 新特性之赋值表达式] 赋值表达式的语法是这样的" name := expression ",形式上看和赋值语句 " = " 差不多, ...
- python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?
我知道python中的条件表达式是x if c else y,但是我在使用它时遇到了一些问题. 我有两个代码要比较. 代码1: 1 2 3 4 5 6 7 8def fun(p): if len(p) ...
- stata行业变量怎么赋值_PEP572:赋值表达式(海象符)
阅读 PEP 是理解 Python 特性的绝好方式.Python 3.8 引入了赋值表达式,它是什么?怎么用?有什么限制?话不多说,直接看 PEP. 一.简介 本提案建议在 Python 中增加 := ...
最新文章
- 生态环境部:提升5.5亿居民饮用水环境安全保障水平
- Virtual Earth API 在指定zoomLevel添加自定义图层
- python使用matplotlib可视化折线图、在可视化图像中同时绘制多条折线图
- 中间画一条短竖线_许愿孔明灯怎么画,简约好看的孔明灯简笔画教程
- springboot访问静态页面404_解决 springboot 2.x 访问静态资源 404的问题
- Google 翻译,梦想与现实的距离有多远
- .net 宏定义_C语言基础知识:几种特殊的函数宏封装方式
- 数据网站(数据集的获取)、打分网站
- 信号与系统课后题答案分享
- 2022爱分析· 业财税一体化厂商全景报告
- Data Shapley: Equitable Valuation of Data for Machine Learning(翻译)
- 《JavaScript 20 年》中文版之语言诞生
- CentOS 6.4 电信ADSL拨号上网网络配置
- python字符串字母怎么取出_Python需要从字符串中提取第一个和最后一个字母
- dw新建一个html网页,Dreamweaver创建网页的基本方法
- 微软日语输入法用法说明
- Balsamiq Mockups注册码
- 掘金总点赞量前 5000 排行发布 | 掘金总关注量前 5000 排行
- 去哪儿攻略app v3.9.2 官方iphone版
- 【技术向】VOT中的EAO是如何计算的
热门文章
- 从傅里叶分析角度解读深度学习的泛化能力
- 文档扫描:深度神经网络在移动端的实践
- python 中的路径. ./ .. ../和相对路径的写法
- python中list是什么意思_python中list和list [:]有什么区别?
- Sql高级查询(三)
- 【虚拟化】docker部署Rabbitmq
- Docker操作容器2
- Spring Boot-@ImportResource注解
- XCTF WEB weak_auth
- 计算机粘贴功能不能用了,电脑复制粘贴不能用了【解决办法】