详解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调用短信猫控件实现发短信功能实例
Jul 04 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
Python中base64与xml取值结合问题
Dec 22 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
python Canny边缘检测算法的实现
Apr 24 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 Python
python图片灰度化处理的几种方法
Jun 23 Python
python 单机五子棋对战游戏
Apr 28 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中使用X-SendFile头让文件下载更快
2014/06/01 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
js一组验证函数
2008/12/20 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
python中Flask框架简单入门实例
2015/03/21 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python中几种自动微分库解析
2019/08/29 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
Python如何定义接口和抽象类
2020/07/28 Python
python爬虫---requests库的用法详解
2020/09/28 Python
英国足球店:UK Soccer Shop
2017/11/19 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
应聘编辑职位自荐信范文
2014/01/05 职场文书
小班幼儿评语大全
2014/04/30 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
党员身份证明材料
2015/06/19 职场文书
JavaScript组合继承详解
2021/11/07 Javascript