一个小示例告诉你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创建XML文档
Mar 01 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
查看django版本的方法分享
May 14 Python
python最小生成树kruskal与prim算法详解
Jan 17 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
Feb 11 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
Mar 09 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
python UIAutomator2使用超详细教程
Feb 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
PHP实现链式操作的原理详解
2016/09/16 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
Vue组件化开发思考
2018/02/02 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
Windows下python3.7安装教程
2018/07/31 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Python如何将字符串转换为日期
2020/07/31 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
2015初中生物教研组工作总结
2015/07/21 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL