python推导式的使用方法实例


Posted in Python onFebruary 28, 2021

前言

推导式提供了更简洁高效的方法来生成序列而又不失代码的可读性。

定义: 推导式是 Python 里很有用的一个特性,它可以用一行代码就可以创建一个新的序列(比如:列表,集合,字典等等)。通过这个性能,不仅可以少写很多代码,而且性能上也更快。

Python 里有四种推导式:

  • 列表推导式(List Comprehensions)
  • 字典推导式(Dictionary Comprehensions)
  • 集合推导式(Set Comprehensions)
  • 生成器推导式(Generator Comprehensions)

一、列表推导式(List Comprehensions)

假如你有一个列表,你想去掉该列表中的所有负数,那通常的做法使用 for 循环

numbers=[1,-2,3,-4,5]
new_nums=[]
for num in numbers:
 if num>0:
  new_nums.append(num)
print(new_nums)

输出结果:

python推导式的使用方法实例

但如果我们用列表推导式来实现,那么这个过程就短得多,只需要一行代码:

numbers=[1,-2,3,-4,5]
new_nums=[num for num in numbers if num>0]

print(new_nums)

输出结果同上。

列表推导式的结构:

output_list = [expression for var in input_list if condition]

这里的 if condition 语句并不是必须有的。

二、字典推导式(Dictionary Comprehensions)

跟列表推导式一样,通过同样方式生成字典的方法,就是字典推导式。

假如你想从一个全是数字的列表来创建一个字典,列表里的数字作为 key, 数字的的字符串值作为 value, 然后再某个限制条件,最终获得你想要的字典数据:

nums=[1,2,3,4,5,6,7,8]

dict={}
for num in nums:
 if num %2 == 0:
  dict[num] = str(num)

print(dict)

输出结果:

python推导式的使用方法实例

如果我们使用字典推导式,就会简洁的多:

nums=[1,2,3,4,5,6,7,8]
dict={num:str(num) for num in nums if num % 2 == 0}

print(dict)

输出结果同上。

字典推导式的模板:

{key:value for (key,value) in dict if key,value satisfy condition}

三、集合推导式(Set Comprehensions)

集合推导式跟列表推导式差不多。就比如我们要把一个全是数字的列表中的奇数组成一个集合,用 for 循环的话:

numbers=[1,2,3,4,5,6,7,8]
filtered_nums=set()

for num in numbers:
  if num %2 == 0:
   filtered_nums.add(num)

print(filtered_nums)

输出结果:

python推导式的使用方法实例

如果我们使用集合表达式来表示:

numbers=[1,2,3,4,5,6,7,8]
filtered_nums={num for num in numbers if num %2 == 0}

print(filtered_nums)

输出结果同上。

注意: 集合推导式除了是使用 {} 外,其他形式都跟列表推导式一样。

四、生成器推导式(Generator Comprehensions)

生成器推导式(或叫生成器表达式),其结构也跟列表表达式相似。

例如我们将数字列表中各项平方运算并排除奇数项:

def square_even(numbers):
  for number in numbers:
   if number % 2 == 0:
     yield (number * number)

numbers=[1,2,3,4,5,6]
square_numbers=square_even(numbers)

for number in square_numbers:
  print(number)

输出结果:

python推导式的使用方法实例

使用生成器推导式显示为:

numbers=[1,2,3,4,5,6]
square_numbers=(num *num for num in numbers if num % 2 ==0)

for number in square_numbers:
  print(number)

输出结果同上。

注意: 生成器推导式是使用 () ,其他基本结构跟列表推导式一样。

总结

到此这篇关于python推导式的使用方法的文章就介绍到这了,更多相关python推导式使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python调用C语言开发的共享库方法实例
Mar 18 Python
Python生成器(Generator)详解
Apr 13 Python
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
Python实现的特征提取操作示例
Dec 03 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
python批量处理txt文件的实例代码
Jan 13 Python
Python切割图片成九宫格的示例代码
Mar 10 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
python线程优先级队列知识点总结
Feb 28 #Python
利用Opencv实现图片的油画特效实例
Feb 28 #Python
利用python实现后端写网页(flask框架)
Feb 28 #Python
python pyg2plot的原理知识点总结
Feb 28 #Python
python在协程中增加任务实例操作
Feb 28 #Python
python 制作本地应用搜索工具
Feb 27 #Python
如何用Python进行时间序列分解和预测
Mar 01 #Python
You might like
使用PHP批量生成随机用户名
2008/07/10 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
使javascript也能包含文件
2006/10/26 Javascript
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Android分包MultiDex策略详解
2017/10/30 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Python 切分数组实例解析
2019/11/07 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
Python 高效编程技巧分享
2020/09/10 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
建筑项目策划书
2014/01/13 职场文书
班组长岗位职责
2014/03/03 职场文书
生物制药专业求职信
2014/03/11 职场文书
自主招生专家推荐信
2015/03/26 职场文书
2016年清明节寄语
2015/12/04 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL