码迷,mamicode.com
首页 > 其他好文 > 详细

生成式,匿名函数及内置函数部分使用方法

时间:2019-07-14 13:17:37      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:max   参数   reduce   return   pen   比较   容器   for   turn   

生成式

# 列表生产式
l = [clyxez,cjzdez,clydsb,clysb]
l1 = [i for i in l if i.startswith(cly) ]  # 将以‘cly‘开头的元素以列表的形式取出
# 内部首先进行for循环将每个元素取出,再进行判断条件成立才会交给for前面的代码
# [‘clyxez‘, ‘clydsb‘, ‘clysb‘]
l2 = []
for i in l:
    if i.startswith(cly):
        l2.append(i)
print(l2)



# 字典生成式 
# l1 = [‘egon‘, ‘123‘, ‘dbj‘]
# l2 = [‘name‘, ‘pwd‘, ‘hobby‘]
l = [egon, ai, dbj]
dic = {i:j for i,j in enumerate(l)}
# print(dic)


res = {i for i in range(1,10) if i > 5 }  # 生成一个集合

res1 = (i for i in range(10) if i > 3)  # 这样写不是元组形式,而是生成器表达式
print(res1)  # <generator object <genexpr> at 0x00000245B7D80EB8>

匿名函数

‘‘‘
匿名函数是没有名字的函数
用完立即销毁
匿名函数一般不单独使用,配合内置函数一起使用
‘‘‘
res = (lambda x,y:x*y)(10,99)

# 冒号左边是匿名函数的形参,冒号右边是匿名函数的返回值

部分内置函数

# max
# 比较值大小的内置函数
# res = max(1, 2, 3, 4, 5)  # 内部是for 循环
# max可以在内部使用匿名函数
dic = {cly: 100,
       cjz: 2000,
       tank: 999
       }
res = max(dic)  # 对key首字母进行 比较大小,并不会对value进行比较
# def index(name):
#     return d[name]
res1 = max(dic, key=lambda name: dic[name])  # 比较薪资 返回人名

# map 映射
# 例:
l = [1,2,3,4,5,6]
res3 = map(lambda x:x+9,l)  # 内部for循环
# for i in res:
#        print(i)


# zip 拉链  # 将几个容器类型
l1 = [1, 2, 3]
l2 = [name, cly, dsb, cgs ]
l3 = [a, b, c, o, p]
print(list(zip(l1, l2, l3)))  # [(1, ‘name‘, ‘a‘), (2, ‘cly‘, ‘b‘), (3, ‘dsb‘, ‘c‘)]
# 木桶效应,看短的列表,以短的列表进行合成



from functools import reduce
l = [1,2,3,4,5,6]
print(reduce(lambda x,y:x+y,l,19))  # 19初始值  第一个参数
# 相当于先将容器类型中前两个参数取出进行相加,再将后面的值依次取出进行相加
# 有初始值时,就将初始值作为第一个参数,再进行相加

 

生成式,匿名函数及内置函数部分使用方法

标签:max   参数   reduce   return   pen   比较   容器   for   turn   

原文地址:https://www.cnblogs.com/asdaa/p/11183755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!