详解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进阶教程之模块(module)介绍
Aug 30 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
详解Python中的相对导入和绝对导入
Jan 06 Python
深入理解Python中的内置常量
May 20 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
Django实现表单验证
Sep 08 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Python 阶乘详解
Oct 05 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
我的论坛源代码(一)
2006/10/09 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
php面向对象值单例模式
2016/05/03 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Python编写打字训练小程序
2019/09/26 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
采购部岗位职责
2013/11/24 职场文书
宿舍标语大全
2014/06/19 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android