一个小示例告诉你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算法学习之计数排序实例
Dec 18 Python
Python跳出循环语句continue与break的区别
Aug 25 Python
python统计日志ip访问数的方法
Jul 06 Python
python发送邮件脚本
May 22 Python
python批量修改文件编码格式的方法
May 31 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
python requests模拟登陆github的实现方法
Dec 26 Python
python交互模式基础知识点学习
Jun 18 Python
python re.match()用法相关示例
Jan 27 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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
header()函数使用说明
2006/11/23 PHP
PHP Array交叉表实现代码
2010/08/05 PHP
php include加载文件两种方式效率比较
2010/08/08 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
Vue数据监听方法watch的使用
2018/03/28 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
Python中的默认参数详解
2015/06/24 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python 实现微信自动回复的方法
2020/09/11 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
小学课外活动总结
2014/07/09 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
pycharm代码删除恢复的方法
2021/06/26 Python
python代码实现备忘录案例讲解
2021/07/26 Python