内置函数思维导图:https://www.processon.com/mindmap/5c10c08ae4b07c3e3334f22d
内置函数
作用域相关: 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))
继续阅读与本文标签相同的文章
-
企业上云的好处优势告诉你企业为什么要上云?
2026-05-19栏目: 教程
-
阿里云910会员节大促主会场全攻略
2026-05-19栏目: 教程
-
Agentless监控实践中的预警指标采集
2026-05-19栏目: 教程
-
企业为什么要上云?企业如何上云?
2026-05-19栏目: 教程
-
工作流在Kubernetes集群中的实践
2026-05-19栏目: 教程
