python的可迭代对象

一、介绍

在Python中,可迭代对象是指实现了__iter__()方法的对象,它可以通过调用iter()函数返回一个迭代器对象。可迭代对象可以是容器对象(如列表、元组、集合、字典等),也可以是自定义的对象。

二、实例

以下是一些常见的可迭代对象的示例:

列表(List):列表是最常见的可迭代对象之一,它可以通过for循环遍历其中的元素。

my_list = [1, 2, 3, 4, 5]
for item in my_list:
    print(item)

元组(Tuple):元组也是可迭代对象,它可以通过for循环遍历其中的元素。 

my_tuple = (1, 2, 3, 4, 5)
for item in my_tuple:
    print(item)

字符串(String):字符串是由字符组成的序列,因此它也是可迭代对象。

my_string = "Hello"
for char in my_string:
    print(char)

集合(Set):集合是一组唯一的元素的无序集合,它也是可迭代对象。 

my_set = {1, 2, 3, 4, 5}
for item in my_set:
    print(item)

字典(Dictionary):字典是由键值对组成的无序集合,它的可迭代对象是字典的键。

my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict:
    print(key)

除了以上内置的可迭代对象外,我们还可以自定义可迭代对象。要实现一个可迭代对象,只需在对象中定义__iter__()方法,并在该方法中返回一个迭代器对象。通过这种方式,我们可以使用for循环等迭代方式遍历自定义对象中的元素。

# 迭代器对象
class ItRange():
    def __init__(self,num):
        self.num = num
        self.counter = -1     # 注意,counter是从-1开始的,所以第一次调用__next__函数,会返回0

    def __iter__(self):
        return self

    def __next__(self):
        self.counter += 1
        if self.counter == self.num:   # 如果迭代次数超过num,则触发异常StopIteration,停止迭代,并返回属性counter
            raise StopIteration()
        return self.counter

# 可迭代对象
class XRange():
    def __init__(self,max_num):
        self.max_num = max_num

    def __iter__(self):
        return ItRange(self.max_num)

print(list(XRange(10)))  # 你可以看到输出的最终结果就是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

obj1 = XRange(10)

# 在此时,首先是调用了XRange的__iter__方法,返回了一个迭代器,
# 然后逐次调用迭代器的__next__方法,形成每一个值
for item in obj1:   
    print(item)

python的可迭代对象_第1张图片 

 

参考:

理解python中的迭代器对象、可迭代对象、生成器对象_range函数中的迭代器对象是什么意思_helloworld987456的博客-CSDN博客

你可能感兴趣的:(python,python)