【python核心】迭代(面试题常考)

本文详细探讨了Python中的迭代概念,包括可迭代对象的使用,如何通过__iter__函数创建迭代器,以及迭代器对象在实际问题中的应用。文章特别强调了迭代器在面试中的常见性,并提供了相关练习题,如利用迭代器遍历元组和字典,以及实现自定义迭代器类MyRange。
摘要由CSDN通过智能技术生成


迭代

定义:每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值。例如:循环获取容器中的元素。

可迭代对象iterable(怎么用)

定义:具有__iter__函数的对象,可以返回迭代器对象。

"""
    可迭代对象
"""
#可迭代对象 --- 容器
list01 =[43,43,4,5,567]
#迭代过程
# for item in list01:
#     print(item)

#迭代原理
#面试题:for循环的原理是什么?
#答:1. 获取迭代器;2. 循环获取下一个元素;3.遇到异常停止迭代
# 可以被for的条件是是什么?
# 能被for对象必须具备__iter__方法
#能被for对象是可迭代对象

#1. 获取迭代器
iterator = list01.__iter__()
#2. 循环获取下一个元素
while True:
    try:
        item = iterator.__next__()
        print(item)
    # 3.遇到异常停止迭代
    except StopIteration:
        break#退出循环

练习(面试题常考)

练习1:
使用迭代器原理,遍历元组。
(“铁扇公主”,“铁锤公主”,“扳手王子”)

tuple01 = ("铁扇公主","铁锤公主","扳手王子")
iterator = tuple01.__iter__()
while True:
    try:
        item = iterator.__next__()
        print(item)
    except StopIteration:
        break

练习2:
不使用for,获取字典所有数据。
{“铁扇公主”:101,“铁锤公主”:102,“扳手王子”:1031}

dict01 = {
   "铁扇公主":101,"铁锤公主":102,"扳手王子":1031}
iterator = dict01.__iter__()
while True:
    try:
        key = iterator.__next__()
        print(key,dict01[key])
    except StopIteration:
        break

迭代器对象iterator(怎么做)

"""
    迭代器
"""
class Skill:
    pass

class SkillIterator:
    """
        技能迭代器
    """
    def __init__(self,target):
        self.__target = target
        self.__index = 0

    def __next__(self):
        #如果没有数据了抛出异常
        if self.__index > len(self.__target) -1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值