一个小示例告诉你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抓取网页正文的源码
Jun 11 Python
以一段代码为实例快速入门Python2.7
Mar 31 Python
Django中使用locals()函数的技巧
Jul 16 Python
python web框架学习笔记
May 03 Python
Python中你应该知道的一些内置函数
Mar 31 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
python实现多线程端口扫描
Aug 31 Python
python实现将json多行数据传入到mysql中使用
Dec 31 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
ADODB的数据库封包程序库
2006/12/31 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP实现的策略模式示例
2019/03/20 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
JS实现self的resend
2010/07/22 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
就业意向协议书
2015/01/29 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python