python各种推导式详解
推导式的套路
下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。
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各种推导式详解相关推荐
- python 列表推导式详解
推导式comprehensions(又称解析式),是Python的一种独有特性,可以从一个数据序列构建另一个新的数据序列.具有使用方便,让代码看起来很高级的功能. 分析 考虑以下需求: a=[1,2, ...
- 列表推导式详解:[i for i in L]
python的一般for循环:for i in x:#x是列表对象 而列表推导式是:[i for i in x] 其意为:用for i in x的所有遍历结果i来组成一个新的列表 1.列表推导式详解: ...
- 小白的Python 学习笔记(八)推导式详解
什么是推导式 大家好,今天我总结一下Python的推导式,首先让我们来看定义 推导式(comprehensions)是Python的一种独有特性,是可以从一个数据序列构建另一个新的数据序列的结构体.一 ...
- 列表推导式 python原理_Python进阶-列表推导式详解总结
列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做 lst = ...
- Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)
什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...
- Python基础教程:列表推导式详解
我们经常需要这样处理一个列表:把一个列表里面的每个元素, 经过相同的处理 ,生成另一个列表. 比如:一个列表1,里面都是数字,我们需要生成一个新的列表B,依次存放列表A中每个元素的平方 怎么办? 当然 ...
- Python编程各种推导式详解
推导式的套路 之前我们已经学习了最简单的列表推导式和生成器表达式.但是除此之外,其实还有字典推导式.集合推导式等等. 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variabl ...
- 列表推导式 python_Python进阶 列表推导式详解总结
列表推导式并不是什么特别的技术,它只是一种创建列表的简洁方法,目的是为了让大家写程序时更方便更快捷,写出更简洁的代码 初识列表 现在请创建一个list,元素为1到9的整数,先用普通方法做lst = [ ...
- python:基础知识详解
一.基本元素 变量 变量赋值: a="hello world" 变量命名: • 字母:a-z, A-Z, 其他语言的字母符号 • 数字:0-9 (不可以出现在首字符) • 下划线: ...
最新文章
- 【Spring】基于XML的IOC案例
- 【高并发】高并发场景下如何优化加锁方式?看完这篇我确实明白了!!
- libvirt(virt-install命令介绍)
- c语言发送结构体 文件
- js检测鼠标是否在操作_原生JS趣味demo:炫酷头像鼠标追随效果的实现
- Java Spark之创建RDD的两种方式和操作RDD
- C语言-动态内存管理
- ironpython调用c dll_IronPython脚本调用C#dll示例
- java mvc页面传值方式_详解SpringMVC的ModelAndView传值方法
- (转)非常完善的Log4net详细说明
- Java 中 Comparable 和 Comparator 比较(转)
- bootloader系列二——arm920t--bootloader架构设计
- android 4.4 cts测试,android之CTS兼容性测试及FAIL issue
- number -1 is not iterable (cannot read property Symbol(Symbol.iterator))
- tensorboard 2.0可视化 —浏览器中输入http://ip:6006 - 无法访问此网站——有效解决
- 1484: 青蛙(四)
- js禁止鼠标右键的菜单事件
- source insight 4.0 代码函数变量符号高亮
- 图片爬取和IP地址查询
- QEMU-KVM 安装方法
热门文章
- 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】
- CAS 服务器端取消 https的配置 方法
- 怎么一步步编写简单的PHP的Framework(二十一)
- 开源Linux 3.3内核首次融合Android代码
- ASP.NETmvc常用JQUERY插件【jquery.dataTables.js】
- python连接数据库的技术_Python操作MySQL数据库的三种方法
- 入门SAP PP的学习流程
- LSMW批处理使用方法(03)_步骤2
- 46、Power Query-Table.FillDown函数简介
- 为什么说OLAP产品毁了BI?