一个小示例告诉你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的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
深入浅出学习python装饰器
Sep 29 Python
Python文件的读写和异常代码示例
Oct 31 Python
python Tkinter版学生管理系统
Feb 20 Python
在python里面运用多继承方法详解
Jul 01 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 Python
Django解决frame拒绝问题的方法
Dec 18 Python
python反扒机制的5种解决方法
Feb 06 Python
解决pytorch读取自制数据集出现过的问题
May 31 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中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python3 深浅copy对比详解
2019/08/12 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
Django 路由层URLconf的实现
2019/12/30 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
python super()函数的基本使用
2020/09/10 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
初婚初育证明
2014/01/14 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
教师先进事迹材料
2014/12/16 职场文书
商务司机岗位职责
2015/04/10 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python