python笔记5

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 *的 *能够导入的函数

posted @ 2018-05-06 10:27  你猜不出我密码  阅读(159)  评论(0编辑  收藏  举报