一个小示例告诉你Python语言的优雅之处


Posted in Python onJuly 04, 2014

比如, 我们希望希望检测"一段string是否以特定的字符串结尾?", 通常我们使用:

if needle.endswith('ly') or needle.endswith('ed') or
    needle.endswith('ing') or needle.endswith('ers'):
    print('Is valid')
  else:
    print('Invalid')

十分丑陋是吧? 如果我们检测变量needle是否是以下特定字符串之一的话, 会这样写:

if needle in ('ly', 'ed', 'ing', 'ers'):
    print('Is valid')
  else:
    print('Invalid')

但是, 我们无法在 endswith function 中使用 in, 但我们换一种想法, 我们需要检查的其实是"一段string的结尾是否是以下字符串的任意一个?", 我们会发现python有内部函数any, 于是我们的代码可以改为:

if any([needle.endswith(e) for e in ('ly', 'ed', 'ing', 'ers')]):
    print('Is valid')
  else:
    print('Invalid')

相信很多读者在此会不同意我的做法, 或者有更好的写法存在. 但这已经不重要. 我明白你们大多数都会使用类似的写法面对这一相似的问题. 我真正的目的其实是展示一下Python的优雅之处.

Python 相关文章推荐
从Python的源码浅要剖析Python的内存管理
Apr 16 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
python2 与python3的print区别小结
Jan 16 Python
django中forms组件的使用与注意
Jul 08 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
用python批量移动文件
Jan 14 Python
PyQt5实现多张图片显示并滚动
Jun 11 Python
Python函数式编程中itertools模块详解
Sep 15 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 #Python
Python Deque 模块使用详解
Jul 04 #Python
Python中的二叉树查找算法模块使用指南
Jul 04 #Python
深入分析在Python模块顶层运行的代码引起的一个Bug
Jul 04 #Python
python之import机制详解
Jul 03 #Python
Python之eval()函数危险性浅析
Jul 03 #Python
python的绘图工具matplotlib使用实例
Jul 03 #Python
You might like
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
vue登录注册实例详解
2019/09/14 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Python 序列的方法总结
2016/10/18 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
优秀党员转正的自我评价
2013/10/06 职场文书
研究生求职推荐信范文
2013/11/30 职场文书
高一自我鉴定
2013/12/17 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
民生工作实施方案
2014/05/31 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
心理学培训心得体会
2016/01/22 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
Python自动化实战之接口请求的实现
2022/05/30 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle