Python——推导式

推导式

推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以避免语法冗长的代码

列表推导式

  • 通过列表推到创建一个整数列表
 number_list = [number for number in range(1,10)]
>>> number_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 带条件的列表推导式
    [expression for item in iterable if condition]
>>> a_list = [num for num in range(1,100) if num%2==1]
>>> a_list
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
  • for 循环推导式
    • 普通模式
>>> for row in rows:
...     for col in cols:
...             print(row,col)
... 
1 1
1 2
2 1
2 2
3 1
3 2
  • 使用一次推导
>>> rows = range(1,5)
>>> cols = range(1,10)
>>> row = ()
>>> col = ()
>>> cells = [(row,col) for row in rows for col in cols]
>>> for i in cells:
...     print(i)
  • 字典推导式
    {key_expression:value_expressionf for expression in iterable}
>>> word = 'letters'
>>> letter_counts = {letter:word.count(letter) for letter in word}
>>> letter_counts
{'l': 1, 'e': 2, 't': 2, 'r': 1, 's': 1}

程序中,先对字符串'letters'中出现的字母进行循环,计算出每个字母出现的次数。

  • 集合推导式
    {expression for expression in iterable}

  • 生成器推导式
    元组时没有推导式的,圆括号之间的是生成器推导式,返回一个生成器对象

    • 一个生成器只能运行一次。列表、集合、字符串和字典都存储在内存中,生成器仅在运行中产生值,不会被存下来。所以不能重新使用或者备份一个生成器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 推导式 推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以 将循环和条件判断结合,从而避免语法冗...
    b485c88ab697阅读 925评论 0 0
  • 本文翻译自Functional Programming Howto 本文将介绍Python中函数式编程的特性。在对...
    大蟒传奇阅读 2,645评论 4 14
  • 使用#注释: 在Python中使用#进行标识注释,从#开始到当前行结束的部分都是注释。注释只对当前行起作用,并且P...
    码农小杨阅读 1,502评论 2 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,768评论 0 5