【Python 基础篇】Python代码 之 三目表达式总结

【Python 基础篇】Python代码 之 三目表达式总结Python 中的三元表达式 result 为真时的结果 if 判断条件 else 为假时的结果 示例 gt gt gt x 1 gt gt gt y 2 gt gt gt result xifx gt yelsey 如果条件成立 将 x 的值赋给 result gt gt gt result2 上面的三元表达式等价于 gt gt gt x 1 gt gt gt y 2 gt gt gt ifx

提起三目表达式,相信大家都不陌生。该表达式,简化了代码的书写,可以说一定程度上,让我们的代码,看起来十分精炼。不同的编程原因,绝对部分都会提及到三目语法。比如,在systemverilog 语言中,定义 if 判断条件为真 ? 条件为真的表达式:条件为假的表达式。

今天,我们着重总结python 的三目语法。

1. Python中的三元表达式语法

result = 为真时的结果 if 判断条件 else 为假时的结果

# 示例: >>> x = 1 >>> y = 2 >>> result = x if x > y else y # 如果条件成立,将x的值赋给result >>> result 2

上面的三元表达式等价于

>>> x = 1 >>> y = 2 >>> if x > y: ... result = x ... else: ... result = y ... >>> result 2 >>>

2. 三元表达式的常见应用

2.1  结合普通函数使用

# 示例一: 求两个参数的最大值 >>> def max(x, y): ... return x if x > y else y # 取两个值的比较大的 ... >>> max(1, 3) 3 >>> # 示例二: 斐波那契数列 >>> def fib(n): ... return n if n<2 else fib(n-1)+fib(n-2) ... >>> [fib(n) for n in range(10)] [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] >>>

2.2 结合匿名函数使用

>>> map(lambda x,y:x-y if x> y else y-x, [2,1,3],[4,3,1]) # 两个列表相减并保证不为负 [2, 2, 2] >>>

2.3 结合列表推导使用

# 示例一: 将0-9的10个数,奇数用0表示,偶数用1表示 >>> [0 if i % 2 == 0 else 1 for i in range(10)] [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] # 示例二: 常规写法 >>> x = 100 >>> L = [] >>> L.append(1 if x>0 else 0) >>> L [1] >>>

2.4  在处理Json格式中的应用

使用三元表达式的写法

【Python 基础篇】Python代码 之 三目表达式总结

一般的写法,可以看见,使用三元表达式的写法要简洁的多!

【Python 基础篇】Python代码 之 三目表达式总结

2.5  三元表达式的一个变种

下面是三元表达式的一个变种,但是只能针对bool 操作。注意,此时 bool(参数) 中的参数,可以是非布尔变量。

>>> cond = True >>> name = ["Cat", "Tom"][bool(cond)] >>> name 'Tom' >>> cond = "" >>> name = ["Cat", "Tom"][bool(cond)] >>> name 'Cat' >>>

3 总结 

最后,推荐大家尝试多去运用三目运算表达式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233813.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pytorch 转置卷积

    Pytorch 转置卷积环境使用Kaggle里免费建立的Notebook教程使用李沐老师的动手学深度学习网站和视频讲解小技巧:当遇到函数看不懂的时候可以按查看函数详解。卷积不会增大输入的高和宽,通常要么不变,要么减半。而转置卷积则可以用来增大输入高宽。假设忽略通道,步幅为1且填充为0。输入张量形状为nh×nwn_h\timesn_wnh​×nw​,卷积核形状为kh×kwk_h\timesk_wkh​×kw​。共产生nhnwn_hn_wnh​nw​个中间结果。每个中间结果都是一个(nh+k

    2022年6月21日
    27
  • canoe入门教程_canoe编程

    canoe入门教程_canoe编程转自:https://www.cnblogs.com/fengliu-/p/7844072.htmlCANOE入门(一)CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。硬件我使用的是CANcaseXL.1,CANoe软件的安装很简单,先装驱动,再装软件。安装完成,插上USB,连接硬件,这样在控制面板中,…

    2025年7月1日
    3
  • <HTML>简单登录页面代码

    <HTML>简单登录页面代码简单登录HTML

    2022年6月14日
    27
  • office文件 vue 预览_vue实现pdf文档在线预览功能

    office文件 vue 预览_vue实现pdf文档在线预览功能针对android系统不支持pdf文档在线预览,可通过引入pdf.js插件实现,其具体实现步骤如下一、引入插件方式一:npminstall–savepdfjs-dist,安装完成后在vue项目的node_modules出现如下依赖方式二:只引入pdf.js的核心文件pdf.js和pdf.work.js,其他无关的文件全部删除,如图方式三:将插件直接放在static文件夹下,如图二、前端页面…

    2022年5月18日
    37
  • sdn网络技术简介(DID通信业务)

    一、SDN网络数据中心最重要的是要完善和建设10Gb、40Gb甚至是100Gb以太网的设施基础。软件定义网络(SDN)一直都是网络领域里的热门话题。SDN的最大好处是有可能节约网络的总拥有成本,并使网络基础设施能够弹性、灵活地支持业务。SDN将这种传统的、离散方法转变成了一种新的全局方法。SDN是一种网络架构,它能够通过动态编程网络设备来控制或”界…

    2022年4月14日
    119
  • 什么是 Promethues | 普罗米修斯( 集群监控系统 )

    什么是 Promethues | 普罗米修斯( 集群监控系统 )Promethues监控系统Prometheus是个啥Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是GoogleBorgMon监控系统的开源版本。监控系统什么是监控系统1、监控系统在这里特指对数据中心的监控,主要针对数据中心内的硬件和软件进行监控和告警2、随着技术不断迭代,越来越复杂的数据中心环境对监控系统提出了更越来越高的要求:需要监控不同的对象,例如容器,分布式存储,SDN网络,分布式系统

    2022年7月19日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号