内置函数与迭代器
重要内置函数补充
1. zip() 拉链
zip可以将两个列表内的数据值按照索引位置一一对应组合成元组
eg:
l1 = [1, 2, 3, 4]
l2 = [5, 6, 7, 8, 9]
res = zip(l1, l2)
print(list(res))
2. filter() 过滤
filter可以按照某个条件筛选列表内的数据值
eg:
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, l1)
print(list(res))
3.sorted() 升序
给数据集按照升序的方式做排序
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res)
常见内置函数
1.abs() 绝对值相当于数学中的|a|
print(abs(-111))
2.all() 所有数据值对应的布尔值为True结果才为True,否则返回False
3.any() 所有数据值对应的布尔值只要有一个为True结果就为True,否则返回False
4.bin() 转二进制
5.oct() 转八进制
6.hex() 转十六进制
7.int() 转十进制、整形定义关键字
8.bytes() 转bytes类型(二进制)
9.callable() 判断变量名是否可以加括号调用
name = 'zyg'
def index():
pass
print(callable(name))
print(callable(index))
10.chr() 基于ASCII码表将数字转为字母
print(chr('88'))
11.ord() 基于ASCII码表将字母转为数字
print(ord('g'))
12.dir() 返回括号内对象能够调用的方法
name = 'zyg'
print(dir(name))
13.divmod() 括号内放被整除的数字和除数,返回的结果是一个元组里面放整除数和余数
print(divmod(87, 7))
14.enumerate() 枚举,将数据集中的每个数据取出并编号,默认从0开始
15.eval() 识别字符串中的python代码并执行,但只能识别简单的代码
16.exec() 可以识别并执行字符串中具有一定逻辑性的代码,比eval强
17.hash() 哈希加密
18.id() 查找内存地址
19.input() 自定义输入
20.isinstance() 判断数据值的数据类型是否与后面输入的数据类型相同
21.map()
22.max()\min()
23.open() 打开文件
24.pow() 幂指数
print(pow(2, 7))
25.range() 生成一个存放数字的列表
26.round() 四舍五入
print(round(88.8))
print(round(88.4))
27.sum() 求和
s1 = [55, 86, 16, 79, 63]
print(sum(s1))
28.zip() 拉链
可迭代对象
1.什么是可迭代对象
内置有__iter__方法的都称为可迭代对象
'''
就是能够通过点的方式调用__iter__方法
.__iter__
__iter__又称双下iter方法
'''
2.可迭代对象的范围
能够被for循环的都是可迭代对象
是可迭代对象
str list dict tuple set 文件对象
不是可迭代对象
int float bool 函数对象
迭代器对象
1.迭代器对象
由可迭代对象调用__iter__方法产生的
判断一个对象是不是迭代器对象要看是否内置有__iter__和__next__
2.迭代器对象的作用
提供了一种不依赖于索引取值的方式
3.迭代器使用
首先将可迭代对象转为迭代器对象,然后对迭代器对象使用双下next方法
代码实现:
s1 = 'hello'
res = s1.__iter__()
res1 = res.__next__()
print(res1)
ps:
可迭代对象使用__iter__会变成迭代器对象,迭代器对象再调用__iter__还是迭代器对象,不会有任何变化
for循环内部原理
for 循环结构:
for 变量名 in 可迭代对象:
循环体代码
'''
先将in后面的可迭代对象调用__iter__转为迭代器对象
然后依次让迭代器对象调用__next__取值
一旦__next__取不到值会报错但for循环会自动捕获错误并处理
'''
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现