详解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 流程控制实例代码
Sep 25 Python
决策树的python实现方法
Nov 18 Python
Python实现的数据结构与算法之队列详解
Apr 22 Python
python利用Guetzli批量压缩图片
Mar 23 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
PyQt实现界面翻转切换效果
Apr 20 Python
python读取和保存图片5种方法对比
Sep 12 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 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类
2006/11/25 PHP
基于php权限分配的实现代码
2013/04/28 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
使用python实现省市三级菜单效果
2016/01/20 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
Numpy数组的保存与读取方法
2018/04/04 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python时间日期操作方法实例小结
2020/02/06 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
会计专业自我鉴定范文
2013/10/06 职场文书
高中数学教师求职信
2013/10/30 职场文书
证婚人搞笑证婚词
2014/01/10 职场文书
迎新晚会邀请函
2014/02/01 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
博士给导师的自荐信
2015/03/06 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技