Python列表生成式与生成器详解及示例

桃夭
桃夭
发布时间:2026-10-14 | 3人浏览过
原创

本文详细介绍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程序设计有所帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表