一个小示例告诉你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 numpy元素的区间查找方法
Nov 14 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
解决python Markdown模块乱码的问题
Feb 14 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 Python
python实现串口自动触发工作的示例
Jul 02 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
PyTorch中的C++扩展实现
Apr 02 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
使用tensorflow 实现反向传播求导
May 26 Python
Python中Selenium对Cookie的操作方法
Jul 09 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的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
python遍历数组的方法小结
2015/04/30 Python
Python数据类型学习笔记
2016/01/13 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Python日志器使用方法及原理解析
2020/09/27 Python
Python实现随机爬山算法
2021/01/29 Python
python绘制汉诺塔
2021/03/01 Python
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
暑期实践思想汇报
2014/01/06 职场文书
趣味游戏活动方案
2014/02/07 职场文书
中文教师求职信
2014/02/22 职场文书
设备售后服务承诺书
2014/05/30 职场文书
社区班子对照检查材料
2014/08/27 职场文书
党员争先创优承诺书
2015/01/20 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
病假条格式范文
2015/08/17 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
初二英语教学反思
2016/02/15 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers