1 迭代器
fucs = {"tes":22,"sss":1,"sfafa":223}
obj = func.iter()
obj.next()
2 生成器
1 提供一种迭代器的方式
2 与return相比,可以取多指
例子
def my_range(start,stop,step=1):
while start < stop:
yield start
start += step
#返回生成器的对象
res=my_range(1,1000,2)
##调用next方法
for item in res:
print(item)
生成器 sender的方法
def dog(name):
print("{}sss".format(name))
while True:
yield name
print("ssss{}..{}".format(name,name))
dog_orb = dog("alex")
##next(obj) 可以用 boj.send(None) 需要将函数停到yield处
dog_orb.__next__()
for i in range(1,10):
dog_orb.send("{} is alex".format(i))
##
def dog(name):
print("{}sss".format(name))
while True:
food = yield name
print("ssss{}..{}".format(food,name))
food = yield name(food为用户send传送的值,name为返回值)
3 3元表达式
names = ["egg","bbb","sss","sssa"]
dd = [len(i) for i in names if not i.endswith("bb")]
print(dd)
4 匿名表达式
salies = {
"aa":111,
"bb":2222,
"cc":33333,
"dd":100
}
def func(k):
return salies[k]
key传递 函数,,在max中是比较的对象,由于max就是个for循环
print(max(salies,key = func ))
print(max(salies,key = lambda x:salies[x]))
5 import 导入
all = ["test","sss"] 控制的是from test import *的 *能够导入的函数