Python列表生成式与生成器操作示例
本文实例讲述了Python列表生成式与生成器操作。分享给大家供大家参考,具体如下:
列表生成式:能够用来创建list的生成式
比如想要生成类似[1*1,2*2,3*3,…..100*100]
的这种list
时
可以用
[x * x for x in range(1,11)]
这样就能生成,除此之外,后面还能添加判断条件来筛选
比如
[x * x for x in range(1,11) if x%2=0]
这样就能筛选出仅有偶数的平方
还能用多层循环来生成全排列
[m+n for m in 'ABC' for n in 'XYZ']
总之 列表生成式能够快速的生成满足条件的list
下面是一个让list中所有字符串变为小写的例子
[s.lower() for s in ['TIM','JOHN','MARY']
生成器:就是未循环完的列表,这是为了节约电脑内存,设立的一种一边循环一边计算的机制。
创建的方法也是很简单,其中一种就是把列表生成式的[]
改成()
就可以了
而调用的时候也一般不用麻烦的next()
的方法,而是用for
循环来遍历
比如:
g = (x*x for x in range(10)) for n in g: print(n)
运行结果:
0
1
4
9
16
25
36
49
64
81
这样就能遍历出所有的生成器中的元素
另一种生成器的方法:如果函数中包含有yield
关键字,则这是一个生成器
def odd(): print('step 1') yield 1 print('step 2') yield(3) print('step 3') yield(5)
使用(遍历)方法:
g=odd() for i in g: print(i)
运行结果:
step 1
1
step 2
3
step 3
5
更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
详解python列表生成式和列表生成式器区别
本文实例为大家分享了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
-
python列表生成式与列表生成器的使用
列表生成式:会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,就会占用过多的内存空间,可能会导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况 列表生成器:会创建一个列表生成器对象,不会一次性的把所有结果都计算出来,如果需要获取数据,可以使用next()函数来获取,但是需要注意,一旦next()函数获取不到数据,会导致出现StopIteration异常错误,可以使用for循环遍历列表生成器,获取所有数据 需要视情况而定,如果数据量比较大,推荐使用生成器 py
-
Python3中的列表生成式、生成器与迭代器实例详解
本文实例讲述了Python3中的列表生成式.生成器与迭代器.分享给大家供大家参考,具体如下: 列表生成式 Python内置的一种极其强大的生成列表 list 的表达式.返回结果必须是列表. 基本语法: [ 变量表达式 for 变量 in 表达式 ] 示例 a = [x ** 2 for x in range(1, 10)] b = [x * x for x in range(1, 11) if x % 2 == 0] c = [m + n for m in 'ABC' for n in '123
-
浅谈Python中列表生成式和生成器的区别
列表生成式语法: [x*x for x in range(0,10)] //列表生成式,这里是中括号 //结果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] (x*x for x in range(0,10)) //生成器, 这里是小括号 //结果 <generator object <genexpr> at 0x7f0b072e6140> 二者的区别很明显: 一个直接返回了表达式的结果列表, 而另一个是一个对象,该对象包含了对表达式结果的计算引用, 通
-
Python中的列表生成式与生成器学习教程
列表生成式 即创建列表的方式,最笨的方法就是写循环逐个生成,前面也介绍过可以使用range()函数来生成,不过只能生成线性列表,下面看看更为高级的生成方式: >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法. 你甚至可以在后面加上if判断: >>
-
Python列表生成式与生成器操作示例
本文实例讲述了Python列表生成式与生成器操作.分享给大家供大家参考,具体如下: 列表生成式:能够用来创建list的生成式 比如想要生成类似[1*1,2*2,3*3,-..100*100]的这种list时 可以用 [x * x for x in range(1,11)] 这样就能生成,除此之外,后面还能添加判断条件来筛选 比如 [x * x for x in range(1,11) if x%2=0] 这样就能筛选出仅有偶数的平方 还能用多层循环来生成全排列 [m+n for m in 'AB
-
Python列表list排列组合操作示例
本文实例讲述了Python列表list排列组合操作.分享给大家供大家参考,具体如下: 排列 例如: 输入为 ['1','2','3']和3 输出为 ['111','112','113','121','122','123','131','132','133','211','212','213','221','222','223','231','232','233','311','312','313','321','322','323','331','332','333'] 实现代码: # -*-
-
Python高级特性之切片迭代列表生成式及生成器详解
目录 切片 迭代 列表生成式 生成器 迭代器 在Python中,代码越少越好.越简单越好.基于这一思想,需要掌握Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码.代码越少,开发效率越高. 切片 tuple,list,字符串都可以进行切片操作 L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] L[0:3] # ['Michael', 'Sarah', 'Tracy'] L[:3] # ['Michael', 'Sarah', '
-
python 中的列表生成式、生成器表达式、模块导入
5.16 列表生成式 l=[] for i in range(100): l.append('egg%s' %i) print(l) l=['egg%s' %i for i in range(100)] l=['egg%s' %i for i in range(1000) if i > 10] print(l) 5.17 列表生成式与生成器表达式的应用 names=['egon','alex_sb','wupeiqi','yuanhao','lxx'] res=map(lambda x:x.
-
一文带你了解Python列表生成式应用的八重境界
目录 1. 引言 2. Level1: 基础用法 3. Level2: 加入条件语句 4. Level3: 加入 enumerate() 5. Level4: 加入 zip() 6. Level5: 加入三目运算符 7. Level6: 嵌套循环 8. Level7: 嵌套列表生成式 9. Level8: 合并上述所有技巧 10. 应用栗子 11. 总结 1. 引言 在Python中有非常多且好用的技巧,其中使用最多的是列表生成式,往往可以将复杂的逻辑用简单的语言来实现,本文重点介绍列表生成式应
-
python 列表推导和生成器表达式的使用
序列 序列是指一组数据,按存放类型分为容器序列与扁平序列,按能否被修改分为不可变序列与可变序列. 容器序列与扁平序列 容器序列存放的是对象的引用,包括list.tuple.collections.deque. 扁平序列存放的是对象的值,包括str.bytes.bytearray.memoryview和array.array. 扁平序列的值是字符.字节和数值这种基础类型. 不可变序列与可变序列 不可变序列,包括tuple.str.bytes. 可变序列,包括list.bytearray.array
-
九个Python列表生成式高频面试题汇总
目录 1. 引言 2. 字符串转整数 3. 大于10的数字 4. 大于10且整除3的数字 5. 对列表中的偶数执行加1操作 6. 包含数字1的数字 7. 合并两个列表 8. 根据value对字典排序 9. 求两个列表的元素组合 10. 列表中两个元素的唯一组合,其和为3的倍数 11. 总结 1. 引言 之前已经有博客专门介绍了Python中的列表生成式,可能大家还不太擅长.这里推荐九个Python列表生成式的面试题(从简单到困难排序),可以帮助大家提高列表生成式的理解水平. 闲话少说,我们直接开
随机推荐
- asp.net中ListBox 绑定多个选项为选中及删除实现方法
- Lua中的元方法__newindex详解
- CSS3 3D 技术手把手教你玩转
- Python 功能和特点(新手必学)
- innerHTML动态添加html代码和脚本兼容多个浏览器
- 用JavaScript获取页面文档内容的实现代码
- php常见的魔术方法详解
- Android开发之menu菜单
- Java 图片压缩实现思路及代码
- MongoDB 学习笔记(一)-MongoDB配置
- Linux命令详解之less命令
- Android ScrollView实现反弹效果的实例
- window.parent调用父框架时 ie跟火狐不兼容问题
- Android使用Handler实现View弹性滑动
- Python机器学习之SVM支持向量机
- node.js博客项目开发手记
- Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
- java正则表达式获取大括号小括号内容并判断数字和小数亲测可用
- 微信小程序BindTap快速连续点击目标页面跳转多次问题处理
- Python3中列表list合并的四种方法