列表推导式
#列表推导式最大的特点:在一行内完成一个新列表的组件
[返回值 for 循环 if条件]
#把列表中的元素翻倍 # lst=[1,2,3,4,5] # lst1=[i*2 for i in lst] # print(lst1)
#练习 # 1.100以内,能被3整除的数 # lst=[i for i in range(101) if i %3==0] # print(lst) #2.100以内能被3整除的平方 # lst=[i**2 for i in range(101) if i%3==0] # print(lst) # 3.寻找名字中带有两个e的人的名字 # names = [['Tom','Billy','Jefferson','Andrew','Webley','Steven'], # ['Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva'] # ] # name1=[j for i in names for j in i if j.count('e')==2] # print(name1)
字典推导式(同列表)
# dic={'a':10,'b':20} # dic1={key:dic[key] for key in dic} # print(dic1) #将字典的key和value对调 # dic2={dic[key]:key for key in dic} # print(dic2)
生成器表达式
lst=[1,2,3,4,5,6,7,8] gen=(i for i in lst if i%2==0) #生成器三种取值方式 #方式1 print(gen.__next__()) #方式2 for i in gen: print('i',i) #方式3 转成列表,再打印 lst2=list(gen) print(lst2)
生成器是程序员能够自己写的迭代器
# 生成器函数:只要包含yield关键字,这个函数就是生成器函数
# 生成器表达式(结果 for 变量 in 可迭代对象 if 条件筛选)
浙公网安备 33010602011771号