详解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学习笔记 下载
Feb 10 Python
python实现的防DDoS脚本
Feb 08 Python
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 Python
Python函数嵌套实例
Sep 23 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python实现线程状态监测简单示例
Mar 28 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
Pycharm配置lua编译环境过程图解
Nov 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
使用Apache的rewrite技术
2006/06/22 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
详解node中创建服务进程
2017/05/09 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python设计模式大全
2016/06/27 Python
python模块之re正则表达式详解
2017/02/03 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
pandas分批读取大数据集教程
2020/06/06 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
Python self用法详解
2020/11/28 Python
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
通信研究生自荐信
2014/02/01 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
2015年校长新年寄语
2014/12/08 职场文书
工作收入证明范本
2015/06/12 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL