迭代器

可迭代对象

  • 可迭代对象有:集合,列表,字符串,字典,元组
  • 不可迭代:整数,浮点数,布尔

迭代器对象

  • 调用obj.__iter__()方法返回的结果就是一个迭代器对象
  • 迭代器对象是内置有iternext方法的对象,打开的文件本身就是一个迭代器对象
    • 执行迭代器对象.iter()方法得到的仍然是迭代器本身
    • 而执行迭代器对象.next()方法就会计算出迭代器中的下一个值
name = 'heart'
# 获得迭代器的方法一
name_iter = name.__iter__()
# 获得迭代器的方法二
name_iter = iter(name)
# 使用next方法一
print(name_iter.__next__()) # h
print(name_iter.__next__()) # e
print(name_iter.__next__()) # a
# 使用next方法二
print(next(name_iter))

(1)列表

num_list = [1, 2, 3]
num = iter(num_list)
print(next(num)) # 1
print(next(num)) # 2
print(next(num)) # 3

(2)元组

num_list = [1, 2, 3]
num = iter(num_list)
print(next(num)) # 1
print(next(num)) # 2
print(next(num)) # 3

(3)字典

num_list = [1, 2, 3]
num = iter(num_list)
print(next(num)) # 1
print(next(num)) # 2
print(next(num)) # 3

(4)集合

num_list = [1, 2, 3]
num = iter(num_list)
print(next(num)) # 1
print(next(num)) # 2
print(next(num)) # 3

for循环内部原理

num_list = [1, 2, 3, 4, 5, 6]
num_iter = iter(num_list)
while True:
try:
print(num_iter.__next__())
except StopIteration:
break

计时器

import time
start_time = time.time()
print(f'运行时间: {time.time()-start_time}s')
posted @   ssrheart  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示