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])

例2:
将一个字符串转换成字典

str1 = 'a=1;b=2;c=3;d=4'

res = {
    
    i.split('=')[0]:i.split('=')[1] for i in str1.split(';')}
print(res)

列表生成器

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

例1:

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

flag = 1
while flag:
    try:
        print(next(obj))
    except StopIteration:
        print('迭代器取值结束')
        flag = 0

猜你喜欢

转载自blog.csdn.net/z929162742/article/details/107770443
今日推荐