zoukankan      html  css  js  c++  java
  • python的部分内置函数

    内置函数思维导图:https://www.processon.com/mindmap/5c10ca52e4b0c2ee256ac034

    内置函数

    匿名函数

      匿名函数统一的名字是:<lambda>

      使用场景: 配合着sorted, map, filter 一起使用

    fn = lambda a, b : a + b # 定义一个很简单的函数. 复杂的函数不要用lambda
    ret = fn(3, 5)
    print(ret)
    print(fn)

    sorted  排序函数. 让你自己去定义排序的规则

    执行流程:

    把可迭代对象中的每一项拿出来, 作为参数传递给后面key函数.

    函数返回数字. 根据数字进行排序

    lst = [11,5,36,1,27,58]
    s = sorted(lst) # 默认从小到大排序.
    print(s)
    lst1 = ["胡一菲", "张伟", "关谷神奇", "曾小贤吕小布", "诺澜"]
    def func(s):
        return len(s) # 返回长度
    s = sorted(lst, key=func)
    print(s)
    #使用匿名函数配合sorted使用
    #print(sorted(lst, key=lambda s:len(s) ))

    filter  过滤

    把可迭代对象打开. 把内部元素一个一个的传递给前面的函数. 由这个函数决定此项是否保留

    lst = ["张无忌", "张翠山", "范冰冰", "金毛狮王", "李冰冰"]
    # 过滤掉姓张的人
    f = filter(lambda name : not name.startswith(""), lst)
    print("__iter__" in dir(f)) # 可迭代对象
    for el in f:
        print(el)
    
    lst = [
        {"name":"alex", "shengao":150, "tizhong":250},
        {"name":"wusir", "shengao":158, "tizhong":150},
        {"name":"taibai", "shengao":177, "tizhong":130},
        {"name":"ritian", "shengao":165, "tizhong":130},
        {"name":"nvshen", "shengao":160, "tizhong":120},
        {"name":"baolang", "shengao":183, "tizhong":190}
    ]
    # 过滤掉体重大于180的人   想要的是 小于180
    f = filter(lambda d : d['tizhong'] <= 180, lst)
    print(list(f))

    map  映射函数

    lst = ["篮球球", "打打台球", "唱歌", "爬慌山", ""]
    m = map(lambda s: "爱好:"+s , lst)
    print(list(m))
    lst = [1,5,78,12,16] # 计算每个数字的平方
    print([i **2 for i in lst])
    m = map(lambda i: i ** 2, lst)
    print(list(m))

    eval 是把字符串类型的数据作为代码进行执行

    s = "18+2"
    ret = eval(s) # 执行字符串类型的代码
    print(ret)
    s = "{'name':'alex', 'age':18, 'isMan':False}" # 字符串
    ret = eval(s)  # 侧重的有返回值
    print(ret)
    print(type(ret))
    exec execute 执行字符串类型的代码, 不能太长. 不能太乱
    code = input("请输入你要执行的代码")
    exec(code) # 没有返回值. 想要返回值用eval
    print(a)   # pycharm报错不一定准
    compile 编译: 把你要执行的代码先预编译. 通过exec和eval可以执行我们的代码
    code = '''
    for i in range(10):
        if i % 2 == 0:
            print(i)
    '''
    c = compile(code, "", "exec") # 预加载代码
    exec(c) # 运行代码
     

     

  • 相关阅读:
    设置数据库某字段为当前时间
    HashMap源码解析(只为吊打面试官)
    SRAM 静态内存芯片 IS62WV51216 的使用 STM32F407ZGT6
    手机ARM种类,STM32中的ARM核又是什么东东?
    运算放大器 常用经典电路 计算书
    SMT 生产线设备 (PCBA)
    横机 电控设计
    ISO26262 标准
    质量管理体系(16949)的五大工具
    IATF16949和TS16949有什么不同?
  • 原文地址:https://www.cnblogs.com/fu-1111/p/10110684.html
Copyright © 2011-2022 走看看