Перебрать список в Python

Опубликовано: 4 Февраля, 2022

Список эквивалентен массивам на других языках с дополнительным преимуществом в виде динамического размера. В Python список - это тип контейнера в структурах данных, который используется для одновременного хранения нескольких данных. В отличие от наборов, списки в Python упорядочены и имеют определенное количество.
Существует несколько способов перебора списка в Python. Давайте посмотрим все различные способы перебора списка в Python и сравнение их производительности.

Method #1: Using For loop 

Python3

# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
  
# Using for loop
for i in list:
    print(i)

Выход:

 1
3
5
7
9

  
Method #2: For loop and range()
In case we want to use the traditional for loop which iterates from number x to number y. 
 

Python3

# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
  
# getting length of list
length = len(list)
  
# Iterating the index
# same as "for i in range(len(list))"
for i in range(length):
    print(list[i])

Выход:

1
3
5
7
9

Iterating using the index is not recommended if we can iterate over the elements (as done in Method #1). 
  
Method #3: Using while loop 
 

Python3

# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
  
# Getting length of list
length = len(list)
i = 0
  
# Iterating using while loop
while i < length:
    print(list[i])
    i += 1

Выход:

 1
3
5
7
9

  
Method #4: Using list comprehension (Possibly the most concrete way). 
 

Python3

# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
  
# Using list comprehension
[print(i) for i in list]

Выход:

 1
3
5
7
9

  
Method #5: Using enumerate()
If we want to convert the list into an iterable list of tuples (or get the index based on a condition check, for example in linear search you might need to save the index of minimum element), you can use the enumerate() function. 
 

Python3

# Python3 code to iterate over a list
list = [1, 3, 5, 7, 9]
  
# Using enumerate()
for i, val in enumerate(list):
    print (i, ",",val)

Выход:

 0, 1
1, 3
2, 5
3, 7
4, 9

Note: Even method #2 can be used to find the index, but method #1 can’t (Unless an extra variable is incremented every iteration) and method #5 gives a concise representation of this indexing. 
  
Method #6: Using Numpy
For very large n-dimensional lists (for example an image array), it is sometimes better to use an external library such as numpy. 
 

Python3

# Python program for
# iterating over array
import numpy as geek
  
# creating an array using 
# arrange method
a = geek.arange(9)
  
# shape array with 3 rows 
# and 4 columns
a = a.reshape(3, 3)
  
# iterating an array
for x in geek.nditer(a):
    print(x)

Выход:

 0
1
2
3
4
5
6
7
8

Мы можем использовать np.ndenumerate (), чтобы имитировать поведение enumerate. Дополнительная мощность numpy проистекает из того факта, что мы даже можем контролировать способ посещения элементов (порядок Fortran, а не порядок C, скажем :)), но одно предостережение заключается в том, что np.nditer обрабатывает массив как доступный только для чтения. по умолчанию, поэтому необходимо передать дополнительные флаги, такие как op_flags = ['readwrite'], чтобы иметь возможность изменять элементы.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.