一个小示例告诉你Python语言的优雅之处

 更新时间:2014年07月04日 11:27:39   投稿:hebedich  
本篇中, 我们展示一下一段非常小的代码, 这段代码十分吸引我们, 因为它使用十分优雅和直接的方式解决了一个常见的问题.

比如, 我们希望希望检测"一段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打印菱形的实操方法和代码

    在本篇文章里小编给大家分享了关于用python打印菱形的实操方法和代码,对此有需要的朋友们可以学习下。
    2019-06-06
  • Django进阶之CSRF的解决

    Django进阶之CSRF的解决

    这篇文章主要介绍了Django进阶之CSRF的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python函数中的不定长参数相关知识总结

    Python函数中的不定长参数相关知识总结

    今天给大家带来的是关于Python函数的相关知识,文章围绕着Python不定长参数展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • pandas删除指定行详解

    pandas删除指定行详解

    这篇文章主要介绍了pandas删除指定行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Django Rest framework认证组件详细用法

    Django Rest framework认证组件详细用法

    这篇文章主要介绍了Django Rest framework认证组件详细用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python 平方列表中每个数字的多种操作

    Python 平方列表中每个数字的多种操作

    这篇文章主要介绍了Python 平方列表中每个数字的多种操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python 利用turtle模块画出没有角的方格

    python 利用turtle模块画出没有角的方格

    今天小编就为大家分享一篇python 利用turtle模块画出没有角的方格,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 使用PyAudio进行音频处理的详细指南

    使用PyAudio进行音频处理的详细指南

    PyAudio是一个基于PortAudio库的Python绑定,它允许Python程序直接访问和操作音频设备,下面我们就来学习一下PyAudio处理音频的具体操作吧
    2025-02-02
  • Python中match语句的详细用法实例

    Python中match语句的详细用法实例

    match语句接受一个表达式并将其值与作为一个或多个 case 块给出的连续模式进行比较,下面这篇文章主要给大家介绍了关于Python中match语句的详细用法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Python matplotlib画图实例之绘制拥有彩条的图表

    Python matplotlib画图实例之绘制拥有彩条的图表

    这篇文章主要介绍了Python matplotlib画图实例之绘制拥有彩条的图表,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12

最新评论