Bootstrap

Python循环

1. Iterable可迭代类型

在Python中,可迭代类型(iterable types)指的是可以使用迭代器(iterator)进行遍历的数据类型。常见的可迭代类型包括:

  1. 容器序列(Container Sequences)

    • list(列表)
    • tuple(元组)
    • collections.deque
  2. 扁平序列(Flat Sequences)

    • str(字符串)
    • bytes(字节)
    • bytearray
    • memoryview
    • array.array
  3. 其他内置可迭代类型

    • dict(字典)
    • set(集合)
    • frozenset
    • enumerate(枚举对象)
    • filter(过滤器)
    • map(映射)
    • zip(压缩)

此外,用户自定义的类可以通过实现特定的方法(__iter__() 方法)使其变成可迭代类型。一旦对象是可迭代的,就可以使用 for 循环或者 iter() 函数来获取一个迭代器,并使用 next() 函数逐个访问其元素。

要注意的是,虽然大部分内置类型都是可迭代的,但并不是所有对象都是可迭代的。如果一个对象没有实现 __iter__() 方法,则尝试对其进行迭代时会引发 TypeError 异常。

2. for两种常见形式

在Python中,for 循环有两种常见形式:一种是基于可迭代对象的迭代,另一种是基于计数器的迭代。

1. 基于可迭代对象的迭代

这种形式是最常见的 for 循环用法,用于遍历可迭代对象(如列表、元组、字典、集合等)中的元素。在这种形式中,for 循环会依次取出可迭代对象中的每一个元素,并将其赋值给指定的变量(如 element, char, key, num 等),然后执行循环体中的操作。

2. 基于计数器的迭代

有时候,我们需要根据索引或者计数器的值来遍历序列或进行重复操作。这时可以使用 range() 函数或类似功能来生成一个整数序列,然后通过索引访问序列中的元素。在基于计数器的迭代中,常用的方式包括直接使用 range() 函数生成整数序列来控制循环的次数或者步长。此外,enumerate() 函数可以方便地同时获取索引和元素值。这两种形式的 for 循环在Python中非常常见,可根据不同的需求选择合适的形式来进行迭代操作。

;