详解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对SQLite数据库操作
Apr 06 Python
python实现音乐下载的统计
Jun 20 Python
python处理两种分隔符的数据集方法
Dec 12 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
解析PyCharm Python运行权限问题
Jan 08 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
使用python turtle画高达
Jan 19 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
通过代码实例了解Python sys模块
Sep 14 Python
python 可视化库PyG2Plot的使用
Jan 21 Python
python 破解加密zip文件的密码
Apr 22 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
THINKPHP内容分页代码分享
2015/01/14 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
js获取变量
2006/08/24 Javascript
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python定时器实例代码
2017/11/01 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
英文版销售经理个人求职信
2013/11/20 职场文书
批评与自我批评材料
2014/02/15 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
吴仁宝观后感
2015/06/09 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
Web应用开发TypeScript使用详解
2022/05/25 Javascript