一个小示例告诉你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 ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
python使用pil生成图片验证码的方法
May 08 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
python多线程下信号处理程序示例
May 31 Python
使用python实现简单五子棋游戏
Jun 18 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 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
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
jquery使用经验小结
2015/05/20 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
python3 线性回归验证方法
2019/07/09 Python
python实现的Iou与Giou代码
2020/01/18 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
老海军美国官网:Old Navy
2016/09/05 全球购物
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
企事业单位求职者的自我评价
2013/12/28 职场文书
服务之星获奖感言
2014/01/21 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
大一新生检讨书
2014/10/29 职场文书
2014年会计工作总结
2014/11/27 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang