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

列表推导式

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

循环模式:

语法:

[变量 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))				# 输出迭代器中的内容
posted @ 2020-08-03 18:14  爬坡的蜗牛  阅读(109)  评论(0编辑  收藏  举报