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实现根据图标提取分类应用程序实例
Sep 28 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
代码分析Python地图坐标转换
Feb 08 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
学习python可以干什么
Feb 26 Python
python儿童学游戏编程知识点总结
Jun 03 Python
Python搭建HTTP服务过程图解
Dec 14 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
Python3爬虫RedisDump的安装步骤
Feb 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中使用Oracle数据库(4)
2006/10/09 PHP
php实现删除空目录的方法
2015/03/16 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python获取当前日期和时间的方法
2015/04/30 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python list转矩阵的实例讲解
2018/08/04 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python实现邮件自动发送
2019/08/10 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python将音频进行变速的操作方法
2020/04/08 Python
综合测评自我鉴定
2013/10/08 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
工作会议主持词
2014/03/17 职场文书
员工趣味活动方案
2014/08/27 职场文书
工作失误检讨书
2015/01/26 职场文书
中秋节寄语2015
2015/03/24 职场文书
公司放假通知怎么写
2015/04/15 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
高一化学教学反思
2016/02/22 职场文书
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL