列表推导式

#列表推导式最大的特点:在一行内完成一个新列表的组件
[返回值 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 条件筛选)

 

posted @ 2022-06-28 20:39  爱coding的果妈  阅读(60)  评论(0)    收藏  举报