一个小示例告诉你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中关于日期时间处理的问答集锦
Mar 08 Python
Python中subprocess的简单使用示例
Jul 28 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
Python入门_学会创建并调用函数的方法
May 16 Python
python实现聚类算法原理
Feb 12 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 Python
对python中的argv和argc使用详解
Dec 15 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 Python
Python语言规范之Pylint的详细用法
Jun 24 Python
python中mongodb包操作数据库
Apr 19 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
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
python查看模块安装位置的方法
2018/10/16 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
python爬虫中多线程的使用详解
2019/09/23 Python
python文件和文件夹复制函数
2020/02/07 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
事业单位辞职信范文
2014/01/19 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
护理专业自荐信范文
2015/03/06 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
如何利用js在两个html窗口间通信
2021/04/27 Javascript
canvas绘制折线路径动画实现
2021/05/12 Javascript
Java 异步任务计算FutureTask
2022/04/28 Java/Android
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS