一个小示例告诉你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用户评论标签匹配的解决方法
May 31 Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
python 实现返回一个列表中出现次数最多的元素方法
Jun 11 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
Python连接字符串过程详解
Jan 06 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
python线性插值解析
Jul 05 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python matlab库简单用法讲解
Dec 31 Python
python中编写函数并调用的知识点总结
Jan 13 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 采集程序 常用函数
2008/12/18 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
php除数取整示例
2014/04/24 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
极简的Python入门指引
2015/04/01 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
竞选班长演讲稿
2013/12/30 职场文书
新学期开学寄语
2014/01/18 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
党建目标管理责任书
2014/07/25 职场文书
公司周年庆活动方案
2014/08/25 职场文书
组工干部演讲稿
2014/09/02 职场文书
会计实训报告范文
2014/11/04 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
施工安全协议书
2016/03/22 职场文书
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python