『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:
目录:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
1.列表推导式
1.1、使用[]生成list
基本格式:
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: #根据条件过滤哪些值可以。
示例一:
multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
运行结果: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
示例二:
def squared(x):
return x*x
multiples = [squared(i) for i in range(30) if i % 3 is 0]
print multiples
运行结果: [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]
1.2、 使用()生成generator
将俩表推导式的[]改成()即可得到生成器:
multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples))
运行结果: <type 'generator'>
2. 字典推导式
字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。
示例一: 大小写key合并:
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()
if k.lower() in ['a','b']
}
print mcase_frequency
运行结果:{'a': 17, 'b': 34}
示例二: 快速更换key和value:
mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print mcase_frequency
运行结果:{10: 'a', 34: 'b'}
3. 集合推导式
它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
squared = {x**2 for x in [1, 1, 2]}
print(squared)
运行结果: Output: set([1, 4])
这篇笔记来自: cnblog
Thanks Reading ! ♪(・ω・)ノ
『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)的更多相关文章
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
- 『Python基础-3』变量、定义变量、变量类型、关键字Python基础-3』变量、定义变量、变量类型、关键字
『Python基础-3』变量.定义变量.变量类型.关键字 目录: 1.Python变量.变量的命名 2.变量的类型(Python数据类型) 3.Python关键字 1. Python 变量.变量的命名 ...
- 『Python基础-7』for循环 & while循环
『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...
- 『Python基础-6』if语句, if-else语句
# 『Python基础-6』if语句, if-else语句 目录: 条件测试 if语句 if-else语句 1. 条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为 ...
- 『Python基础-4』字符串
# 『Python基础-4』字符串 目录 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘号'*'来实现字符串的叠加效果. 2.4 在字符串中添加空 ...
- 『Python基础-1 』 编程语言Python的基础背景知识
#『Python基础-1 』 编程语言Python的基础背景知识 目录: 1.编程语言 1.1 什么是编程语言 1.2 编程语言的种类 1.3 常见的编程语言 1.4 编译型语言和解释型语言的对比 2 ...
- 『Python基础-11』集合 (set)
# 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...
- 『Python基础-9』元祖 (tuple)
『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...
- 『Python基础-8』列表
『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...
随机推荐
- C/C++ 标准
正式标准是需要付费的,不过可以在http://open-std.org/上找到标准的草案(和实际标准相差不大但是可以免费获取) 下面列出一下可能会用到的标准草案:C99:http://open-std ...
- 018os模块
import osprint(os.getcwd()) # 获取当前目录 F:\python_code\fullstack_s2\week4\day18 os.chdir(r'C:/User ...
- IM
一.IM技术概念 IM技术全称Instant Messaging,中文翻译"即时通讯",它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在 ...
- navicat远程连接mysql,2003 can't connect to mysql server on 10038
转载地址:https://blog.csdn.net/f12105212/article/details/70768516 1:我们连接远程服务器的mysql,如果出现问题,很大问题会出在服务器的端口 ...
- C++、Java、Objective-C、Swift 二进制兼容测试
鉴于目前动态库在iOS App中使用越来越广泛,二进制的兼容问题可能会成为一个令人头疼的问题.本文主要对比一下C++.Java.Objecive-C和Swift的二进制兼容问题. iOS端动态库使用情 ...
- Git Brash在Windows下乱码问题
,/etc/gitconfig: [gui] encoding = utf- #代码库统一用urf-8,在git gui中可以正常显示中文 [i18n] commitencoding = GB2312 ...
- 【[USACO12FEB]附近的牛Nearby Cows】
我记得我调这道题时中耳炎,发烧,于是在学长的指导下过了也没有发题解 发现我自己的思路蛮鬼畜的 常规操作:\(f[i][j]\) 表示到\(i\)的距离为\(j\)的奶牛有多少只,但注意这只是在第二遍d ...
- PHP------Jquery的用法
Jquery Jquery实际上相当于一个升级版的JS,Jquery里面封装了很多的东西,Jquery的功能要比JS强大,用起来比JS方便.Jquery和JS都属于JS,只不过Jquery是封装了一个 ...
- 如何将编写好的CS文件做成exe可执行文件
编译好的控制台CS文件: cs文件单独拿出来放到F盘目录中 打开命令提示CMD: 执行下面语句即可在F盘目录中看到生成的exe文件,windows系统下双击就可运行: C:\Windows\Micro ...
- [LuoguP2900] [USACO08MAR]土地征用(Land Acquisition)
土地征用 (Link) 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比 ...