Рубрики
Без рубрики

11 Мощных методов Итерации по списку в Python

Итерация по списку в python означает прохождение каждого элемента по одному в данном списке. Мы узнаем 11 способов ее достижения.

Автор оригинала: Team Python Pool.

11 Мощных методов Итерации по списку в Python

Здравствуйте, коллеги программисты в сегодняшней статье мы узнаем, как перебирать список в Python. Мы обсудим около 11 мощных способов итерации или циклического перебора списка с помощью Pytho n. Вы можете выбрать лучший метод в соответствии с вашими потребностями или эффективностью процесса. Так что давайте сразу перейдем к делу и начнем путешествие.

Если вы новичок в программировании, вы можете не знать о таких терминах, как итерация и списки. Так что для вас позвольте мне объяснить эти термины тоже на очень простом непрофессиональном языке.

Итерация: Часто в алгоритме набор операторов должен выполняться снова и снова, пока не будет выполнено определенное условие; именно здесь мы находим необходимость в итерации. Повторное выполнение нескольких групп операторов кода в программе называется итерацией.

List: В программировании на Python список создается путем помещения всех элементов (компонентов ) в квадратные скобки [], разделенные запятыми. Он может иметь любое количество вещей, и они могут быть разных типов (integer, float, string и т. Д.). Список может также иметь другой список как вещь. Это называется вложенным списком.

Надеюсь, вы понимаете, что такое список и итерация в python. Давайте рассмотрим 11 способов Перебирать список в Python, которые мы изучаем сегодня.

Способы Итерации по списку в Python

В этом уроке мы подробно обсудим все 11 способов перебора списка в python, которые заключаются в следующем:

<сильный>1. Перебирайте список в Python, Используя For Loop2. Итерация по Списку в Python С Помощью While Loop3. Итерация по Списку в Python С Помощью Модуля Numpy4. Итерация по Списку в Python С Использованием Метода Enumerate5. Итерация по Списку в Python С Использованием Понимания списка6. Итерация по списку в Python С использованием цикла и диапазона7. Перебирайте список в Python С помощью Map и Lambda8. Перебирайте список в Python С помощью Iter() и Next()9. Перебирайте список в Python С Помощью zip()10. Перебирайте список в Python С помощью Itertools.Цикл11. Итерация по списку в Python с помощью Itertools Grouper

1. Итерация по Списку в Python с Помощью цикла For

Выполнение итерации в списке с использованием цикла for-это самый простой и основной способ достижения нашей цели. Как вы можете обнаружить в этой статье, используя какую-то поисковую систему, находя способ перебора списка в Python. Поэтому я предполагаю, что у вас уже есть базовые знания о петлях. Поэтому я не демонстрирую здесь циклы for.

Синтаксис

for variableName in listName:

Пример

# Program to iterate through list using for loop 
list = [9, 11, 13, 15, 17, 19] 

# For Loop to iterate through list
for i in list: 
	print(i)

Выход

9
11
13
15
17
19

Объяснение

В приведенном выше примере программы мы сначала инициализировали и создали список с именем list. Список содержит шесть элементов, которые являются [9, 11, 13, 15, 17, 19] соответственно. А затем мы инициализировали простой цикл for в списке, который будет повторяться до конца списка и в конечном итоге печатать все элементы один за другим. Для печати в python мы просто используем функцию print (), как вы уже знаете.

2. Итерация по Списку в Python с Помощью цикла While

Второй способ перебора списка в python-это использование цикла while. В while loop способе итерации списка мы будем следовать аналогичному подходу, как мы наблюдали в нашем первом способе, то есть методу for-loop. Мы должны просто найти длину списка в качестве дополнительного шага.

Синтаксис

while(condition_to_be_checked) :
    Statement
        UpdationExpression

Пример

# Program to loop through the list using while loop
list = [9, 11, 13, 15, 17, 19] 

# Finding length of the list(list) 

# While Loop to iterate through list
while i < length: 
	print(list[i]) 
	i

Выход

9
11
13
15
17
19

Объяснение

В приведенном выше примере программы мы сначала инициализировали и создали список с именем list. Список содержит шесть элементов, которые являются [9, 11, 13, 15, 17, 19] соответственно. После этого мы должны найти длину списка, найти длину списка в цикле while важно, потому что мы должны проверить условия. Как вы, возможно, уже знаете, цикл while проходит только в том случае, если условия истинны. Вот почему нам нужно найти длину списка, в данном случае длина равна шести, поэтому цикл будет повторяться шесть раз. И мы также объявили и инициализировали переменную ‘i’ с начальным значением ‘0’.

Переходя к циклу while, мы впервые проверили условие, которое истинно. Как и изначально, значение ‘i’ равно ‘0’, а длина списка равна ‘6’. Таким образом, он проверяет ‘0 < 6’ , что является истинным, поэтому он войдет в цикл while и выполнит оператор. Здесь оператор, который должен быть выполнен, состоит в том, чтобы напечатать первый элемент списка. После выполнения оператора он перейдет к выражению updation и выполнит необходимый шаг инкрементирования на ‘1’.

Цикл while будет повторяться до тех пор, пока условие не станет ложным. И мы, наконец, достигнем итерации списка в python.

3. Повторите список в Python С Помощью Модуля Numpy

Третий способ перебора списка в Python – это использование модуля Numpy. Для достижения нашей цели с помощью этого метода нам нужны два метода numpy, которые упоминаются ниже:

  1. numpy.nditer()
  2. numpy.arange()

Iterator object nditer предоставляет множество гибких способов итерации по всему списку с помощью модуля numpy. Функция href=”http://numpy.org/doc/stable/reference/generated/numpy.nditer.html”>nditer() – это вспомогательная функция, которая может использоваться от очень простых до очень продвинутых итераций. Это упрощает некоторые фундаментальные проблемы, с которыми мы сталкиваемся в итерации. href=”http://numpy.org/doc/stable/reference/generated/numpy.nditer.html”>nditer() – это вспомогательная функция, которая может использоваться от очень простых до очень продвинутых итераций. Это упрощает некоторые фундаментальные проблемы, с которыми мы сталкиваемся в итерации.

Нам также нужна другая функция для перебора списка в Python с помощью numpy, которая является numpy.arrange().numpy.arange возвращает равномерно распределенные значения в пределах заданного интервала. Значения генерируются в пределах полуоткрытого интервала [start, stop) (другими словами, интервала, включающего start, но исключающего stop).

Синтаксис:

Синтаксис numpy.nditer()

for val in np.nditer(numpy_array):
	Statemnet

Синтаксис numpy.arrange()

([start, ]stop, [step,)
  • start: Параметр start используется для предоставления начального значения массива.
  • stop: Этот параметр используется для предоставления конечного значения массива.
  • шаг: Он обеспечивает разницу между каждым целым числом массива и генерируемой последовательностью.

Примеры

Давайте рассмотрим различные способы итерации по списку с помощью модуля numpy.

Пример 1:

import numpy as np
 .arange(10)
 
  
for n in np.nditer(x): 
    print(n)

Выход

0
1
2
3
4
5
6
7
8
9

Объяснение

В приведенном выше примере 1 программа np.arange(10) создает последовательность целых чисел от 0 до 9 и сохраняет ее в переменной x. После этого мы должны запустить цикл for, и, используя этот цикл for и np.nditer(x), мы будем перебирать каждый элемент списка один за другим.

Пример 2:

В этом примере мы будем итерировать 2d-массив с помощью модуля numpy. Для достижения нашей цели нам здесь нужны три функции.

  1. numpy.arange()
  2. numpy.reshape()
  3. numpy.nditer()
import numpy as np
.arange(16) .reshape(4, 4) 
for x in np.nditer(a): 
	print(x)

Выход:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Объяснение:

Большая часть этого примера похожа на наш первый пример, за исключением того, что мы добавили дополнительную функцию numpy.reshape(). Функция numpy.reshape() обычно используется для придания формы нашему массиву или списку. В основном на непрофессиональном языке он преобразует размеры массива-как в этом примере мы использовали функцию reshape(), чтобы сделать массив numpy 2D-массивом.

4. Итерация по Списку в Python С Помощью Метода Enumerate

Четвертый способ в нашем списке-это итерация с использованием метода enumerate. Если вы не знаете, что именно enumerate делает в python, то позвольте мне объяснить вам.Метод enumerate() добавляет счетчик к итерируемому объекту и возвращает его. И что бы ни возвращал метод enumerate, это будет объект enumerate.

Основное преимущество использования метода enumerate заключается в том, что вы можете преобразовать объекты enumerate в list и tuple с помощью методов list() и tuple() соответственно.

Синтаксис

enumerate(iterable,)

Метод enumerate() принимает два параметра:

  • iterable – последовательность, итератор или объект.
  • start (необязательно) – начинает отсчет с этого числа. Если start опущен, то 0 принимается за start.

Пример

list = [10, 20, 30, 40, 50, 60, 70]
 
for i, res in enumerate(list): 
    print (i,":",res)

Выход

0 : 10
1 : 20
2 : 30
3 : 40
4 : 50
5 : 60
6 : 70

Объяснение

Здесь, таким образом, для итерации списка мы использовали метод enumerate. Сначала мы инициализировали и создали список. Список содержит семь элементов. После создания списка мы используем цикл for здесь для циклического перебора каждого элемента списка. Переменная ‘i’ здесь используется для подсчета количества раз, когда выполняется цикл for. Функция enumerate(list) здесь будет перебирать каждый элемент в списке, а также выводить число, включающее индекс каждого элемента.

5. Итерация по Списку в Python С Использованием Понимания списка

В этом методе итерации мы будем использовать способ понимания списка. Понимание списка используется для создания мощной функциональности в одной строке кода.

Синтаксис

[expression for item in list]

Понимание списка обычно состоит из трех параметров.

  • expression: Это сам член, вызов метода или любое другое допустимое выражение, которое возвращает значение.
  • пункт: Это объект или значение в списке или итеративном.
  • list/iterable: Это список, набор, последовательность, генератор или любой другой объект, который может возвращать свои элементы по одному за раз

Пример

list = [10, 20, 30, 40, 50, 60, 70] 
[print(i) for i in list]

Выход

10
20
30
40
50
60
70

Объяснение

Это самый простой способ перебора списка, поскольку Python включает в себя простые и мощные инструменты, которые вы можете использовать в самых разных ситуациях. Здесь, в этом примере, print(i) является выражением. Второй ‘i’ – это элемент, который является значением iterable. И, наконец, итерируемый, в приведенном выше примере итерируемый-это список.

6. Итерация по списку в Python С использованием цикла и диапазона

Шестой метод итерации по списку – это использование диапазона и любого цикла в Python. Метод range можно использовать как комбинацию с циклом for для обхода и итерации по списку. Функция range() возвращает последовательность цифр, начинающуюся с 0 (по умолчанию) и по умолчанию увеличивающуюся на 1, и останавливается перед указанным числом.

Синтаксис

range(start, stop, step)
начало (Необязательно). Конкретное число, с которого нужно начать. Значение по умолчанию равно 0
остановка (Обязательно). Номер, указывающий, в какой позиции остановиться (не входит в комплект).
шаг (Необязательно). шаг используется для указания приращения. Значение по умолчанию-1.

Примечание: Метод range не включает стоп-номер в результирующую последовательность.

Пример

list = [10, 20, 30, 40, 50, 60, 70] (list) 
for x in range(length): 
	print(list[x])

Выход

10
20
30
40
50
60
70

Объяснение

Здесь в приведенном выше примере сначала мы инициализировали и создали список с элементами [10, 20, 30, 40, 50, 60, 70]. После этого мы должны найти длину списка с помощью функции len. Список длины равен 7, поэтому теперь значение переменной length равно 7.

Теперь, когда часть цикла приходит сюда, мы используем цикл for в сочетании с функцией range. В приведенном выше примере аргументом length в функции range является параметр stop. Значение длины здесь равно 7, поэтому цикл будет работать от 0 до 6, так как мы уже знаем, что стоп-значение исключается при использовании функции range .

7. Перебирайте список в Python С помощью Map и Lambda

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

Функция map() выполняет указанную функцию в итеративном режиме.

Синтаксис

Синтаксис лямбды

lambda arguments : expression

Здесь выражение будет выполнено, и результат будет возвращен. аргументы: может быть n аргументов числа.

Синтаксис функции map ()

map(function, iterables)
функция Требуемый.
итерируемый Требуемый. Последовательность списка, коллекции или объекта итератора.

Пример

n = [10, 20, 30, 40, 50, 60, 70] (map(lambda y:y, n))
print(ans)

Выход

[10, 20, 30, 40, 50, 60, 70]

Объяснение

В приведенном выше примере мы использовали комбинацию функций lambda и map для итерации списка. Здесь lambda y:y предоставляется в качестве входной функции, а ‘n’ является вторым аргументом функции map (). Таким образом, функция map() передаст каждый элемент n в функцию lambda y:y и вернет элементы.

8. Повторите список в Python с помощью zip()

Если вы хотите перебирать два списка одновременно, вы можете использовать метод zip() в Python. Таким образом, функция zip() создает итератор, который будет агрегировать элементы из двух или более итераций.

Функция zip() в Python генерирует объект zip, который является итератором кортежей.

Синтаксис

zip(iterator1, iterator2, iterator3 ...)
итератор1, итератор2, итератор3 … Объекты итератора, которые будут объединены вместе

Пример

num = [1, 2, 3, 4] 
daypart = ['moring', 'afternoon', 'evening', 'night'] 
for (a, b) in zip(num, daypart): 
	print (a, b)

Выход

1 moring
2 afternoon
3 evening
4 night

Объяснение

В приведенном выше примере мы перебираем серию кортежей, возвращаемых zip(), и распаковываем элементы в a и b. Параметры функции zipping () в данном случае являются (num, daypart) и они будут агрегированы вместе.

При объединении zip(), для Циклы и распаковка кортежей позволяют одновременно проходить две или более итераций.

9. Выполните Итерацию списка в Python С помощью итераторов – Iter() и Next()

Для итерации списка с помощью итераторов в python мы будем использовать методы __iter()__ и __next ()__. В Python __iter__() и __next__() совместно известны как протокол итератора.

Итераторы обычно реализуются в циклах, постижениях, генераторах и т. Д. Это просто объект, который может быть повторен (по одному элементу за раз). Внутренне цикл for создает объект iterator, iter_obj, вызывая iter() для iterable.

Синтаксис

Синтаксис функции __iter ()__

iter(iterable)

Здесь iterable может быть списком, кортежем, строкой и т. Д. Функция iter() (которая вызывает метод __iter__()) возвращает итератор.

Синтаксис функции __next ()__

next(iter_obj)

Next(Iter_obj) – это то же самое, что obj.next(). Здесь iter_obj может быть любым итеративным объектом, созданным функцией iter ().

Пример

iterable = [10, 20, 30, 40, 50, 60, 70](iterable)

while True:
    try:
       (iter_obj)
        print(element)
    except StopIteration:
        break

Выход

10
20
30
40
50
60
70

Объяснение

В приведенном выше примере сначала мы создали итеративный (список) с элементами [10, 20, 30, 40, 50, 60, 70]. Затем мы получаем итератор с помощью функции iter() и сохраняем его в переменной iter_obj. После этого мы инициализировали бесконечный цикл while и использовали функцию next() для перебора всех элементов итератора. Когда мы дойдем до конца и больше не будем возвращать данные, это вызовет исключение StopIteration.

Внутренне цикл for создает объект итератора iter_obj, вызывая iter() на итераторе. Но на практике цикл for на самом деле является бесконечным циклом while.

10. Выполните Итерацию списка в Python С Помощью Itertools.Цикл

Itertools-это библиотека, которая создает эффективные итераторы. Эти итераторы работают быстрее, чем обычная итерация. В этом разделе мы будем использовать itertools.cycle для выполнения итерации по списку. Эта функция цикла возвращает бесконечный итератор, который повторяет список снова и снова. Мы настроим это на повторение только один раз.

Синтаксис

import itertools
.cycle(iterable)

Здесь iterable может быть списком, кортежем, строкой и т. Д. Метод itertools.cycle() возвращает бесконечный итератор.

Пример

import itertools

iterable = [1, 2, 3, 4, 5, 6, 7].cycle(iterable)

while count < len(iterable):
    print(next(iter_obj))
    count

Выход

1
2
3
4
5
6
7

Объяснение

В приведенном выше примере мы сначала импортировали itertools. Затем мы использовали метод itertools.cycle() для создания бесконечного итератора. Затем мы ограничиваем количество раз, когда мы проходим через итератор, используя счетчик. После этого с помощью цикла while перебирайте итератор и увеличивайте количество в каждом цикле. Это гарантирует, что наш итератор не будет бесконечно петлять.

Itertools.cycle в основном используется для создания бесконечно циклического итератора. Это очень полезно в сценариях, где вам нужно создать бесконечный цикл без использования while.

11. Итерация по Списку в Python С помощью Itertools Grouper

В этом разделе используйте itertools.zip_longest для создания группера. Grouper-это функция, с помощью которой мы можем группировать элементы списка и перебирать их. Это может быть полезно, если вы хотите повторить 2-3 элемента в каждой партии вашей итерации.

Синтаксис

from itertools import zip_longest

def grouper(iterable_obj, count,):
    args = [iter(iterable_obj)] * count
    return zip_longest(*args,)
iterable_object Требуемый. Последовательность списка, коллекции или объекта итератора.
считать Требуемый. Количество элементов, группируемых в пакет.
fillvalue Необязательный. Значение заполнения для заполнения пакета, если итератор закончил работу до заполнения пакета.

Пример

from itertools import zip_longest

def grouper(iterable_obj, count,):
    args = [iter(iterable_obj)] * count
    return zip_longest(*args,)

iterable = ["P", "Y", "T", "H", "O", "N"]

for x in grouper(iterable, 1, ""):
    print(*x)

Выход

P
Y
T
H
O
N

Объяснение

В этом примере мы сначала импортировали модуль zip_longest из itertools. zip_longest – это метод, который агрегирует элементы из каждой итерации. Затем мы создаем функцию grouper. Эта функция принимает итерацию в качестве аргумента и количество элементов для группировки вместе. В этом случае, поскольку мы хотим выполнить итерацию по всему списку, мы сохраним значение count равным 1. 3-й аргумент-fillvalue, этот аргумент используется для заполнения оставшихся значений, если пакет меньше, чем count.Затем мы вызовем функцию grouper get iterable. Мы будем перебирать этот итератор, чтобы получить отдельные элементы из списка.

Примечание: Не забудьте распаковать элемент с помощью*, потому что zip_longest возвращает итератор кортежей.

Вывод: Python Перебирает Список

Поэтому, если вы сделаете это до конца, я почти уверен, что теперь вы сможете понять все возможные способы перебора списка в Python. Наилучший способ итерации Python по списку зависит от ваших потребностей и типа проекта, который вы делаете. Я думаю, что вы также можете захотеть узнать, как в Python сортировать список списков. Если да, то в нашей библиотеке учебников есть потрясающий учебник, проверьте его.

Все еще есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!