Home Backend Development Python Tutorial First introduction to iterators in Python

First introduction to iterators in Python

Jun 09, 2023 pm 09:46 PM
python Iterator First acquaintance

Python is a high-level programming language with excellent ease of use and code readability. Python's built-in data types are very powerful, and one of them, Iterator, is also a very important data type.

An iterator is an object that can traverse a container object. It can provide methods to access container elements without exposing the specific implementation. Container objects can be lists, tuples, dictionaries, sets, etc. The iterator maintains an internal state that saves the current position of the container object and other state information related to the traversal. When we need to traverse a container object, we can use an iterator to obtain the elements.

In Python, any object can become an iterator as long as it implements the __iter__() and __next__() methods. The __iter__() method returns an iterator object and initializes the subscript of the current object to 0. The __next__() method is used to return the elements in the container object. When no elements can be returned, a StopIteration exception will be thrown. The following is a simple example:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

class MyIterator:

    def __init__(self, container):

        self.container = container

        self.index = 0

     

    def __iter__(self):

        return self

     

    def __next__(self):

        if self.index >= len(self.container):

            raise StopIteration

        result = self.container[self.index]

        self.index += 1

        return result

 

my_list = [1, 2, 3]

my_iterator = MyIterator(my_list)

for item in my_iterator:

    print(item)

Copy after login

In the above code, we have customized an iterator class named MyIterator. The __iter__() and __next__() methods are implemented in this class. The __iter__() method returns the iterator object self of the current object, while the __next__() method is used to return the elements in the container object my_list. When all elements have been traversed, a StopIteration exception will be thrown, thus terminating the iteration.

In Python, iterators are very commonly used because they can not only traverse elements in container objects, but also save memory and computing resources and improve program performance. The following are some commonly used built-in iterator functions and statements:

  1. iter() function: Convert an iterable object into an iterator return.

1

2

3

4

my_list = [1, 2, 3]

my_iterator = iter(my_list) # 将列表对象转化为迭代器对象

for item in my_iterator:

    print(item)

Copy after login
  1. next() function: Call the __next__() method of the iterator to get the next element in the container object.

1

2

3

4

5

my_list = [1, 2, 3]

my_iterator = iter(my_list) # 将列表对象转化为迭代器对象

print(next(my_iterator)) # 输出1

print(next(my_iterator)) # 输出2

print(next(my_iterator)) # 输出3

Copy after login
  1. enumerate() function: Returns both the subscript and the element.

1

2

3

4

5

6

my_list = ['apple', 'banana', 'orange']

for index, item in enumerate(my_list):

    print(index, item)

# 输出: 0 apple

#       1 banana

#       2 orange

Copy after login
  1. zip() function: Return multiple iterators or iterable objects into a tuple.

1

2

3

4

5

6

7

my_list1 = ['apple', 'banana', 'orange']

my_list2 = [1, 2, 3]

for item in zip(my_list1, my_list2):

    print(item)

# 输出: ('apple', 1)

#       ('banana', 2)

#       ('orange', 3)

Copy after login
  1. in statement: used to determine whether an element is in the container object.

1

2

3

4

5

6

my_list = [1, 2, 3]

if 2 in my_list:

    print("2 is in my_list")

else:

    print("2 is not in my_list")

# 输出: 2 is in my_list

Copy after login

In actual programming, if you need to traverse container objects, try to use iterators to traverse and avoid directly using subscript references to obtain elements, because this will cause a waste of memory and computing resources and slow down the program. performance. The characteristic of iterators is to generate elements on demand and release memory on demand. Therefore, in the processing of large data sets, using iterators can greatly improve the efficiency of the program.

In general, iterator is a very important concept in Python. We need to understand its implementation and common syntax, and master the skills of using iterators in order to write efficient, concise and easy-to-maintain program.

The above is the detailed content of First introduction to iterators in Python. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What are the advantages and disadvantages of templating? What are the advantages and disadvantages of templating? May 08, 2024 pm 03:51 PM

What are the advantages and disadvantages of templating?

How to download deepseek Xiaomi How to download deepseek Xiaomi Feb 19, 2025 pm 05:27 PM

How to download deepseek Xiaomi

Google AI announces Gemini 1.5 Pro and Gemma 2 for developers Google AI announces Gemini 1.5 Pro and Gemma 2 for developers Jul 01, 2024 am 07:22 AM

Google AI announces Gemini 1.5 Pro and Gemma 2 for developers

For only $250, Hugging Face's technical director teaches you how to fine-tune Llama 3 step by step For only $250, Hugging Face's technical director teaches you how to fine-tune Llama 3 step by step May 06, 2024 pm 03:52 PM

For only $250, Hugging Face's technical director teaches you how to fine-tune Llama 3 step by step

Share several .NET open source AI and LLM related project frameworks Share several .NET open source AI and LLM related project frameworks May 06, 2024 pm 04:43 PM

Share several .NET open source AI and LLM related project frameworks

How do you ask him deepseek How do you ask him deepseek Feb 19, 2025 pm 04:42 PM

How do you ask him deepseek

How to save the evaluate function How to save the evaluate function May 07, 2024 am 01:09 AM

How to save the evaluate function

What software is NET40? What software is NET40? May 10, 2024 am 01:12 AM

What software is NET40?

See all articles