Я погружаюсь в Python, и у меня есть вопрос об итерации foreach. Я новичок в Python, и у меня есть некоторый опыт в C #. Поэтому мне интересно, есть ли в Python эквивалентная функция для итерации по всем элементам в моей коллекции, например
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
или что-то вроде этого.
Ответы:
Конечно. А для цикла.
источник
for k,v in enumerate(pets):
и т.д.Как это:
На самом деле, в Python есть только
for
циклы стиля foreach .источник
Также интересно наблюдать за этим
Чтобы перебрать индексы последовательности, вы можете комбинировать
range()
иlen()
следующим образом:вывод
Редактировать # 1: Альтернативный способ:
При циклическом выполнении последовательности индекс позиции и соответствующее значение могут быть получены одновременно с помощью
enumerate()
функции.вывод
источник
Для получения обновленного ответа вы можете легко построить
forEach
функцию в Python:Вы можете также приспособить это
map
,reduce
,filter
, и любые другие функции массива из других языков или старшинств вы хотите переубедить. Ибо петли достаточно быстрые, но котельная плита длиннееforEach
или других функций. Вы также можете расширить список, чтобы иметь эти функции с локальным указателем на класс, чтобы вы могли вызывать их непосредственно в списках.источник
Хотя приведенные выше ответы верны, если вы перебираете dict {key: value}, то этот подход мне нравится использовать:
Поэтому, если бы я хотел сделать что-то вроде строкового преобразования всех ключей и значений в моем словаре, я бы сделал это:
Это позволяет избежать каких-либо проблем с мутациями при применении этого типа итерации, что может вызвать ошибочное поведение (иногда) в моем опыте.
источник
copy
итерация по словарю, так что вы можете манипулировать словарем во время итерации (хотя ваша копия будет иметь все ключи и значения до любой модификации) - какfor key, value in Dictionary.copy().items()
Для Словаря мы можем использовать цикл для перебора
index
,key
иvalue
:источник