迭代操作以及迭代器
本文最后更新于40 天前,其中的信息可能已经过时,如有错误请发送邮件到zhangweihao22@outlook.com

迭代操作就相当于 C 语言中的 for 循环遍历操作。(不过迭代操作要高级一点,可以定义迭代步长…?) 迭代器就相当于实现 for 遍历操作的一个函数(容器)

AI explanation

迭代操作 迭代操作指的是对一组元素逐个进行访问的过程。在 Python 中,很多对象都支持迭代操作,像列表、元组、字符串、字典等,这些对象被叫做可迭代对象。借助迭代操作,你能够依次访问可迭代对象里的每个元素,而不用考虑其具体的实现细节。 示例代码

# 迭代列表
my_list = [1, 2, 3, 4, 5]
for num in my_list:
    print(num)

# 迭代字符串
my_string = "Hello"
for char in my_string:
    print(char)

在上述代码中,for 循环对列表 my_list 和字符串 my_string 进行迭代操作,逐个访问其中的元素并打印出来。

迭代器

迭代器是实现了迭代协议的对象。在 Python 中,迭代器需要实现两个方法:__iter__()__next__()

  • __iter__():该方法返回迭代器对象本身,它使得迭代器可以在 for 循环等迭代操作中被使用。
  • __next__():该方法返回迭代器的下一个元素。当没有更多元素时,它会抛出 StopIteration 异常。 示例代码
class MyRange:
    def __init__(self, start, end):
        self.start = start
        self.end = end
        self.current = start

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.end:
            value = self.current
            self.current += 1
            return value
        else:
            raise StopIteration

# 使用自定义迭代器
my_range = MyRange(0, 5)
for num in my_range:
    print(num)

在上述代码中,MyRange 类实现了迭代器协议。__iter__() 方法返回了迭代器对象本身,__next__() 方法返回下一个元素,当到达 end 值时抛出 StopIteration 异常。

可迭代对象与迭代器的关系

可迭代对象是指实现了 __iter__() 方法的对象,这个方法会返回一个迭代器。也就是说,可迭代对象是可以被迭代的对象,而迭代器是用于实际执行迭代操作的对象。

示例代码

my_list = [1, 2, 3]
# 获取迭代器
my_iterator = iter(my_list)

# 使用 next() 函数获取下一个元素
print(next(my_iterator))  # 输出 1
print(next(my_iterator))  # 输出 2
print(next(my_iterator))  # 输出 3

在上述代码中,iter() 函数用于从可迭代对象 my_list 中获取迭代器,next() 函数用于获取迭代器的下一个元素。

总结

  • 迭代操作是对一组元素逐个进行访问的过程。
  • 迭代器是实现了 __iter__()__next__() 方法的对象,用于实际执行迭代操作。
  • 可迭代对象是实现了 __iter__() 方法的对象,它可以返回一个迭代器。 借助迭代操作和迭代器,你能够高效且灵活地处理各种序列数据。
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Copyright 2025-2025 @ Ziyang
Running Time days H M S