【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 视频直播技术详解之直播云SDK性能测试模型[通俗易懂]

    视频直播技术详解之直播云SDK性能测试模型[通俗易懂]声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载。作者:七牛云责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。七牛云于6月底发布了一个针对视频直播的实时流网络LiveNet和完…

    2022年7月21日
    21
  • java后台发起上传文件的post请求(http和https)

    一、httppost对于文件上传,客户端通常就是页面,在页面里实现上传文件不是什么难事,写个form,加上enctype=”multipart/form-data”,在写个接收的就可以了,没什么难的。如:<!DOCTYPEhtml> <html> <head> <title>HelloWorld!</titl…

    2022年4月6日
    56
  • js添加元素的三种方法

    js添加元素的三种方法点击按钮变为:提前说下结论:善用innerHTML属性,但是不能过于依赖,否则会造成改动过大,不利于程序稳定性。首先,结构部分为:<div><ol><liid=”spe”>speedo</li><li>arena</li><li>balenire</li></ol>.

    2022年6月22日
    226
  • gallery的画廊效果

    gallery的画廊效果

    2022年3月2日
    42
  • VMware 虚拟机里连不上网的五种解决方案「建议收藏」

    VMware 虚拟机里连不上网的五种解决方案「建议收藏」在VMware虚拟机里的虚拟机系统连接不上网络首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM如果存在,连不上网解决办法一:虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。解决方法二:可能原因是VMwareNETService…

    2022年6月26日
    621
  • java———发送网络传真[通俗易懂]

    java———发送网络传真[通俗易懂]目录推荐公众号服务商代码发送代码回执接口推荐公众号有彩蛋哦!!!(或者公众号内点击网赚获取彩蛋)服务商在网上兜兜转转没有找到免费的网络传真API,只好付费服务商bnetfax代码有了API后那其他的就是按照文档开发了没什么难度发送代码publicstaticvoidmain(String[]args)throwsIOException,ServiceExceptio…

    2022年6月28日
    27

发表回复

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

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