Python列表生成式与生成器详解及示例
本文详细介绍Python中列表生成式与生成器的使用方法。通过具体代码示例,讲解如何利用列表生成式快速创建列表并添加筛选条件,以及如何通过修改括号或yield关键字创建生成器以节省内存。
本文介绍了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。
下面是一个将列表中的所有字符串转换为小写的示例:
[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程序设计有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













