内置函数思维导图:https://www.processon.com/view/link/5c13ad2de4b0ed122da75668

内置函数 作用域相关:   locals() 返回当前作用域中的名字   globals()  返回全局作用域中的名字 迭代器相关:   range()  生成数据     next() 迭代器向下执行一次,内部实际使用__next__()方法返回迭代器的下一个项目         iter()   获取迭代器,内部实际使用的是__iter__() 方法来获取迭代器 lst = ['今天星期三', "明天星期四", "马上星期五"]   it = lst.__iter__() print(it.__next__()) print(it.__next__()) print(it.__next__())   it = iter(lst)  # it = lst.__iter__() print(next(it)) # it.__next__() print(next(it)) print(next(it)) 字符串类型代码的执行 eval()  执行字符串类型的代码,并返回最终结果 print(eval("2+2")) # 4 n = 8  print(eval("2+n")) # 10  #eval 是把字符串类型的数据作为代码进行执行 s = "18+2" ret = eval(s) # 执行字符串类型的代码 print(ret) exec() 执行字符串类型的代码 s = "{'name':'alex', 'age':18, 'isMan':False}" # 字符串 # 把字符串类型的代码还原回字典, 列表, 元组 ret = eval(s)  # 侧重的有返回值 print(ret) print(type(ret)) compile() 将字符串类型的代码编译.代码队形能够通过exec语句来执行或者eval()进行求值 code = ''' for i in range(10):     if i % 2 == 0:         print(i) '''     c = compile(code, "", "exec") # 预加载代码 # exec exec(c) # 运行代码 匿名函数    lambda 匿名函数统一的名字就是 lambda fn = lambda a, b : a + b # 定义一个很简单的函数. 复杂的函数不要用lambda ret = fn(3, 5) print(ret) print(func) print(fn)   使用场景: 配合着sorted, map, filter 一起使用 sorted   排序函数. 请你自己去定义排序的规则 sorted 排序函数.  让你自己去定义排序的规则   lst = [11,5,36,1,27,58]   s = sorted(lst) # 默认从小到大排序. print(s) lst = ["胡一菲", "张伟", "关谷神奇", "曾小贤吕小布", "诺澜"] # 按照字符串长度排序 def func(s):     return len(s) # 返回长度   # 执行流程: # 把可迭代对象中的每一项拿出来, 作为参数传递给后面key函数. # 函数返回数字. 根据数字进行排序 s = sorted(lst, key=func) print(s)   print(sorted(lst, key=lambda s:len(s) ))     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} ]   # 按照体重进行排序 print(sorted(lst, key=lambda dic:dic['tizhong'],  reverse=True)) map   映射函数 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)) 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))  
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。