day14--列表推导式,生成器表达式

一,生成器表达式,列表推导式

列表推导式

循环模式:[变量(加工后的变量) for 变量 in iterable]

l2 = [i for i in range (1,14)]
l3 = ["python%s期" % i for i in range(1,14)]
print(l2)
print(l3)

小练习

# ['技师0号','技师1号'... '技师15号']
# ['护士1号', '护士3号','护士5号', ...,'护士13号']
l4 = ["技师%s号" % i for i in range(0,16)]
l5 = ["护士%s号" % i for i in range(1,14,2)]
print(l4)
print(l5)

优点: 节省代码

缺点: 不好排错

整体: 凡是用列表推导式构造的列表对象,用其他方式都可以构建,非常复杂的列表,列表的推导式是构建不出的

筛选模式: [变量(加工后的变量) for 变量 in iterable if条件]

# 10以内所有数的平方
l1 = [i*i for i in range(1,11) if i]
print(l1)
# 30以内所有能被3整除的数的平方
l2 = [i* for i in range(1,31) if i%3==0]
print(l2)
# 100 以内所有的奇数.
l3 = [i for i in range(1,101) if i%2==1]
print(l3)
#找出元素中有两个e的
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
        ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
l2 = [name for i in names for name in i if name.count("e") == 2]
print(l2)

生成器表达式:  把列表推导式的中括号变为小括号

猜你喜欢

转载自www.cnblogs.com/lianghui-lianghui/p/9204369.html