详解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 03 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
用python编写第一个IDA插件的实例
May 29 Python
python绘制直线的方法
Jun 30 Python
django的settings中设置中文支持的实现
Apr 28 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
如何用python爬取微博热搜数据并保存
Feb 20 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
js实现一个简易计算器
2020/03/30 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
JavaScript实现京东放大镜效果
2019/12/03 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
python中的lambda表达式用法详解
2016/06/22 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
python打包成so文件过程解析
2019/09/28 Python
Python 防止死锁的方法
2020/07/29 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
护理工作感言
2014/01/16 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android