Python列表推导式、字典推导式与集合推导式用法实例分析


Posted in Python onFebruary 07, 2018

本文实例讲述了Python列表推导式、字典推导式与集合推导式用法。分享给大家供大家参考,具体如下:

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:

列表(list)推导式
字典(dict)推导式
集合(set)推导式

一、列表推导式

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)
# Output: [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
# Output: [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]

2、使用()生成generator

将俩表推导式的[]改成()即可得到生成器。

multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples))
# Output: <type 'generator'>

二、字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:

例子一:大小写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
# Output: {'a': 17, 'b': 34}

例子二:快速更换key和value

mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print mcase_frequency
# Output: {10: 'a', 34: 'b'}

三、集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

例一:

squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
Python中的tuple元组详细介绍
Feb 02 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
对python中dict和json的区别详解
Dec 18 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python多线程原理与用法实例剖析
Jan 22 Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
python/golang 删除链表中的元素
Sep 14 Python
matplotlib 三维图表绘制方法简介
Sep 20 Python
浅析Python3爬虫登录模拟
Feb 07 #Python
Python实现的三层BP神经网络算法示例
Feb 07 #Python
Python 12306抢火车票脚本
Feb 07 #Python
django限制匿名用户访问及重定向的方法实例
Feb 07 #Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 #Python
Python实现的径向基(RBF)神经网络示例
Feb 06 #Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 #Python
You might like
php将会员数据导入到ucenter的代码
2010/07/18 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
jQuery入门知识简介
2010/03/04 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
JS delegate与live浅析
2013/12/21 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python 对象中的数据类型
2017/05/13 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python补齐字符串长度的实例
2018/11/15 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
python中Mako库实例用法
2020/12/31 Python
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
企业宣传工作方案
2014/06/02 职场文书
财务工作检讨书
2014/10/29 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android