详解python列表生成式和列表生成式器区别


Posted in Python onMarch 27, 2019

本文实例为大家分享了python(列表生成式/器)的具体代码,供大家参考,具体内容如下

一、列表生成式

#列表生成式是快速生成一个列表的一些公式
numbers = []
for x in range(0,101):
  numbers.append(x)
print(numbers)
#[要放入列表的数据 简单的表达式1 表达式2]
#x for x in range(0,101) for循环遍历出来的值,放入列表中
numbers =[x for x in range(0,101)]
print(numbers)

二、小例子

#列表中存放0-100的偶数
#普通写法
numbers = []
for x in range(0,101):
  if x%2 == 0:
    numbers.append(x)
print(numbers)
#for 循环遍历0-101的数字,如果数字对2 取余==0,表示是偶数,x放在列表中
numbers = [x for x in range(0,101) if x%2==0]
print(numbers)
#列表中存放0-100的奇数
numbers = [x for x in range(0,101) if x%2!=0]
print(numbers)
list1 = ['asd','sdf','freg','sfag','refv','aser','sdfr','dfgi']
#取出所有带a的
#普通写法
rs_list = []
for s in list1:
  if 'a' in s:
    rs_list.append(s)
print(rs_list)
#列表生成式
list2 = [x for x in list1 if 'a' in x]
print(list2)
#普通双重for循环
list7 =[]
for x in range(0,10):
  for y in range(10,20):
    s = x*y
    list7.append(s)
print(list7)
#支持双重for循环
list3 = [x*y for x in range(0,10) for y in range(10,20)]
print(list3)

三、字典生成式

#dict_1.item()
list4 = [('name','zhangsan'),('age',22),('phone',110)]
#for循环遍历列表,将列表中小元组key和value取出,作为字典中的key:value
dict_1 = {key:value for key,value in list4}
print(dict_1)

四、列表生成器和列表生成式的区别

list6 = [x for x in range(10)]
print(list6)
#generator列表生成器
#生成的是一个对象,不会把数据直接创建出来,当for遍历的时候,生成器对象会调用next()函数,获取下一个要生成的数据
generator = (x for x in range(10))
#生成式对象可以调用next()函数获取下一个要生成的数字,如果next()函数没有获取到下一个数据,会抛出异常StopIteration ,程序出错
#生成式对象可以使用for遍历,使用next()不停的获取下一个数据,如果没有下一个数据循环结束
for x in generator:
  print(x)

列表生成式: 会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,会占用过多的内存空间,可能导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况

列表生成器:会创建一个列表生成器对象,不会一次性的把所有结果都计算出来,如果需要序号获取数据,可以使用next()函数来获取,但要注意,一旦next()函数获取不到数据,会导致出现StopIteration异常错误,可以使用 for循环遍历生成器对象,获取所有数据

视情况而定,如果数据量比较大,推荐使用生成器;
python2.7中就是 range(生成式) 和xrange(生成器) 的区别

以上所述是小编给大家介绍的python(列表生成式/器)详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中使用pprint函数进行格式化输出的教程
Apr 07 Python
python动态参数用法实例分析
May 25 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
python读取hdfs上的parquet文件方式
Jun 06 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
Python find()、rfind()方法及作用
Dec 24 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 #Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 #Python
python模块之subprocess模块级方法的使用
Mar 26 #Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 #Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 #Python
深度辨析Python的eval()与exec()的方法
Mar 26 #Python
详解Python locals()的陷阱
Mar 26 #Python
You might like
PHP实现的简单网络硬盘
2015/07/29 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
vue2单元测试环境搭建
2018/05/24 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
python实现图片筛选程序
2018/10/24 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
大学生个人简历自我评价
2013/11/16 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
公司开会通知
2015/04/20 职场文书
2016公司年会通知范文
2015/04/25 职场文书
单位提档介绍信
2015/10/22 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
利用Python实现Picgo图床工具
2021/11/23 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python
Android中View.post和Handler.post的关系
2022/06/05 Java/Android