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

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初始值  第一个参数
# 相当于先将容器类型中前两个参数取出进行相加,再将后面的值依次取出进行相加
# 有初始值时,就将初始值作为第一个参数,再进行相加

 

以上是关于生成式,匿名函数及内置函数部分使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Python 基础第十四天(内置函数和匿名函数)

三元表达式列表推导式生成器表达式递归匿名函数内置函数

三元表达式列表推导式生成器表达式递归匿名函数内置函数

生成器 三元表达式 列表生成式 匿名函数 内置函数

三元表达式列表推导式生成器表达式递归匿名函数内置函数

三元表达式列表推导式生成器表达式递归匿名函数内置函数