详解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语言编写电脑时间自动同步小工具
Mar 08 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
Python六大开源框架对比
Oct 19 Python
Python 查看文件的编码格式方法
Dec 21 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
wxPython多个窗口的基本结构
Nov 19 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
Python 之 Json序列化嵌套类方式
Feb 27 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
python matlab库简单用法讲解
Dec 31 Python
Python截图并保存的具体实例
Jan 14 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
神族 Protoss 历史背景
2020/03/14 星际争霸
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
Python print不能立即打印的解决方式
2020/02/19 Python
基于python实现复制文件并重命名
2020/09/16 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
python 带时区的日期格式化操作
2020/10/23 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
给导游的表扬信
2014/01/10 职场文书
会计自我鉴定
2014/02/04 职场文书
成绩单公证书
2014/04/10 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
校园元旦活动总结
2014/07/09 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
同意报考证明
2015/06/17 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP