欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

12 Python学习之列表推导式和生成器表达式

程序员文章站 2024-02-19 13:54:22
...

列表推导式

列表推导式:用一行代码构建一个比较复杂有规律的列表。本质是一个可迭代对象

循环模式:

语法:

[变量 for 变量 in 可迭代对象]

例1:

li = [i for i in range(10)]
print(li)

筛选模式:

语法:

[变量 for 变量 in 可迭代对象 if 条件]

例1:

li = [i for i in range(10) if i % 2 == 0]
print(li)

多层循环嵌套的列表推导式

例1:

找出列表中名字带有两个字母’e’的名字

li = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Steven'], ['Alice', 'Jill', 'Ana', 'Sherry', 'Jennifer']]

print([name for i in li for name in i if name.count('e') == 2])

列表生成器

列表生成器与推导式的写法一样,只是将列表推导式的方括号换成圆括号,本质是一个迭代器

例1:

obj = (i for i in range(1, 11))		# 生成器
print(type(obj))

for _ in range(10):
    print(next(obj))				# 输出迭代器中的内容