推导式的套路

下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。

variable = [out_exp_res for out_exp in input_list if out_exp == 2]out_exp_res:  #列表生成元素表达式,可以是有返回值的函数。for out_exp in input_list:  #迭代input_list将out_exp传入out_exp_res表达式中。if out_exp == 2:  #根据条件过滤哪些值可以。

列表推导式

例一:30以内所有能被3整除的数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

例二:30以内所有能被3整除的数的平方

def squared(x):return x*x
multiples = [squared(i) for i in range(30) if i % 3 is 0]
print(multiples)

例三:找到嵌套列表中名字含有两个‘e’的所有名字

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]print([name for lst in names for name in lst if name.count('e') >= 2])  # 注意遍历顺序,这是实现的关键

字典推导式

例一:将一个字典的key和value对调

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
mcase = {'a': 10, 'b': 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency)

例二:合并大小写对应的value值,将k统一成小写

mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()}
print(mcase_frequency)

集合推导式

例:计算列表中每个值的平方,自带去重功能

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
squared = {x**2 for x in [1, -1, 2]}
print(squared)
# Output: set([1, 4])

练习题:

例1: 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母

例2: 求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表

例3: 求M中3,6,9组成的列表M = [[1,2,3],[4,5,6],[7,8,9]]

[name.upper() for name in names if len(name)>3]
[(x,y) for x in range(5) if x%2==0 for y in range(5) if y %2==1]
[row[2] for row in M]

python各种推导式详解相关推荐

  1. python 列表推导式详解

    推导式comprehensions(又称解析式),是Python的一种独有特性,可以从一个数据序列构建另一个新的数据序列.具有使用方便,让代码看起来很高级的功能. 分析 考虑以下需求: a=[1,2, ...

  2. 列表推导式详解:[i for i in L]

    python的一般for循环:for i in x:#x是列表对象 而列表推导式是:[i for i in x] 其意为:用for i in x的所有遍历结果i来组成一个新的列表 1.列表推导式详解: ...

  3. 小白的Python 学习笔记(八)推导式详解

    什么是推导式 大家好,今天我总结一下Python的推导式,首先让我们来看定义 推导式(comprehensions)是Python的一种独有特性,是可以从一个数据序列构建另一个新的数据序列的结构体.一 ...

  4. 列表推导式 python原理_Python进阶-列表推导式详解总结

    列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做 lst = ...

  5. Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)

    什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...

  6. Python基础教程:列表推导式详解

    我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...

  7. Python编程各种推导式详解

    推导式的套路 之前我们已经学习了最简单的列表推导式和生成器表达式.但是除此之外,其实还有字典推导式.集合推导式等等. 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variabl ...

  8. 列表推导式 python_Python进阶 列表推导式详解总结

    列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做lst = [ ...

  9. python:基础知识详解

    一.基本元素 变量 变量赋值: a="hello world" 变量命名: • 字母:a-z, A-Z, 其他语言的字母符号 • 数字:0-9 (不可以出现在首字符) • 下划线: ...

最新文章

  1. 【Spring】基于XML的IOC案例
  2. 【高并发】高并发场景下如何优化加锁方式?看完这篇我确实明白了!!
  3. libvirt(virt-install命令介绍)
  4. c语言发送结构体 文件
  5. js检测鼠标是否在操作_原生JS趣味demo:炫酷头像鼠标追随效果的实现
  6. Java Spark之创建RDD的两种方式和操作RDD
  7. C语言-动态内存管理
  8. ironpython调用c dll_IronPython脚本调用C#dll示例
  9. java mvc页面传值方式_详解SpringMVC的ModelAndView传值方法
  10. (转)非常完善的Log4net详细说明
  11. Java 中 Comparable 和 Comparator 比较(转)
  12. bootloader系列二——arm920t--bootloader架构设计
  13. android 4.4 cts测试,android之CTS兼容性测试及FAIL issue
  14. number -1 is not iterable (cannot read property Symbol(Symbol.iterator))
  15. tensorboard 2.0可视化 —浏览器中输入http://ip:6006 - 无法访问此网站——有效解决
  16. 1484: 青蛙(四)
  17. js禁止鼠标右键的菜单事件
  18. source insight 4.0 代码函数变量符号高亮
  19. 图片爬取和IP地址查询
  20. QEMU-KVM 安装方法

热门文章

  1. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】
  2. CAS 服务器端取消 https的配置 方法
  3. 怎么一步步编写简单的PHP的Framework(二十一)
  4. 开源Linux 3.3内核首次融合Android代码
  5. ASP.NETmvc常用JQUERY插件【jquery.dataTables.js】
  6. python连接数据库的技术_Python操作MySQL数据库的三种方法
  7. 入门SAP PP的学习流程
  8. LSMW批处理使用方法(03)_步骤2
  9. 46、Power Query-Table.FillDown函数简介
  10. 为什么说OLAP产品毁了BI?