• 匿名,排序,过滤,映射,递归函数


    1.匿名函数 lambda

    lambda 表示的是匿名函数,不需要def 来声明,一句话就可以写出函数

    语法:函数名=lambda 参数:返回值

    注意:函数的参数可以有多个,用逗号隔开

    2.函数不管多复杂,只能写一行

    3.返回值和正常函数一样

    1 print(func(5))
    2 print(a(6))
    3 print(b(4))
    4 print(func.__name__)
    5 print(a.__name__)
    6 print(b.__name__)#查看函数的名字
    1 a= lambda a,b: max(a,b)#判断大小
    2 
    3 b=lambda  a,b:a if a>b else b
    4 print(b(1,2))#判断大小
    1 f=lambda a,b:(a,b)#这里需要括起来,因为若不括上,会默认去前一个,b没有返回值
    2 print(f(1,2))

    2.sorted()排序函数

    语法:sorted(Iterable,key=None,reverse=False)

    Iterable:可迭代对象

    key:排序规则,在sorted内部会将迭代对象每一个元素传递给函数的参数,根据函数运算

    reverse:是否倒序 True:倒叙 ,False:正序

    1 lst=[1,2,8,5,3,6]
    2 lst2=sorted(lst)#sorted()可以对新列表排序
    3 print(lst2)
    1 dic={1:"a",2:"b",3:"c"}#如果是字典,返回的是排序过后的key
    2 print(sorted(dic))
    1 lst=["麻花","奥术大师","啊发发","大发发去安抚"]
    2 def func(s):
    3     return len(s)
    4 print(sorted(lst,key=func,reverse=True))#这里sorted() 里面的
    5 先是可迭代的对象,然后在keysorted()内部会将可迭代对象的每一个元素传递给
    6 函数的参数,默认正序
    1 print(sorted(lst,key(排序函数)=lambda s:len(s) ))
    2 lst=[{"id":1,"name":"自治区","age":18},
    3 # {"id":2,"name":"自治","age":199},
    4 # {"id":3,"name":"自","age":8}
    5 # ]
    6 # print(sorted(lst,key=lambda e:e["age"]))#虽然里面是字典,但是总体来说是
    7 一个列表,所以key排序函数会自动排序

    3.filter() 筛选函数

    语法:filter(function,Iterable)

    function:用来筛选的函数,filter会把语速传递给函数,然后根据函数返回的Ture或False来保留此项数据

    Iterable:可迭代的对象

    1 lst=[1,2,3,4,56,7,9]
    2 li=filter(lambda x:x%2==0,lst)
    3 print(li)#这里输出的是一个内存地址
    4 print(list(li))
    1 lst=[{"id":1,"name":"自治区","age":18},
    2  {"id":2,"name":"自治","age":199},
    3  {"id":3,"name":"","age":8}
    4  ]
    5 li=filter(lambda e:e["age"]>16,lst)
    6 print(list(li))

    4.map 映射函数

    语法:map(function,iterable) 对可以迭代的对象的每一个元素进行映射,分别执行function

    1 map(1."可以迭代对象每一个元素进行映射,分别执行函数")
    2 def func(e):
    3     return e*e
    4 mp=map(func,[1,2,3,4,6])
    5 print(mp)#同样返回的是地址
    6 print(list(mp))#这里需要加一个list返回最后的列表
    1 # map('可以计算相同位置的和,如果第一项少取,则和zip一样也少取值')
    2 # lst1=[1,2,3,4,]
    3 # lst2=[2,34,5,6,8]
    4 # print(list(map(lambda x,y:x+y,lst2,lst1)))

    5.递归函数 (贪吃蛇函数)

    在函数中调用本身就是递归函数

    1 def func(n):
    2     print("n")
    3     n+=1
    4     func(n)
    5 func(1)
     1 import os
     2 def read(filepath,n):
     3     files=os.listdir(filepath)
     4     for fi in  files:
     5         fi_d=os.path.join(filepath,fi)
     6         if os.path.isdir(fi_d):
     7             print("	"*n,fi)
     8             read(fi_d,n+1)
     9         else:
    10             print("	"*n,fi)
    11 read()

    上一个是运用递归查找文件

  • 相关阅读:
    5,MongoDB 之 "$" 的奇妙用法
    4,MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB
    3,MongoDB之数据类型
    2,MongoDB之增删改查及pymongo的使用
    1,MongoDB简介和安装
    19,Ubuntu安装之python开发
    18,Shell编程实战
    17,saltstack高效运维
    16.2,docker网络
    如何使用 window api 转换字符集?
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/9483741.html
Copyright © 2020-2023  润新知