生成式,匿名函数及内置函数部分使用方法
Posted asdaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成式,匿名函数及内置函数部分使用方法相关的知识,希望对你有一定的参考价值。
生成式
# 列表生产式 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初始值 第一个参数 # 相当于先将容器类型中前两个参数取出进行相加,再将后面的值依次取出进行相加 # 有初始值时,就将初始值作为第一个参数,再进行相加
以上是关于生成式,匿名函数及内置函数部分使用方法的主要内容,如果未能解决你的问题,请参考以下文章