Estou mergulhando no Python e tenho uma pergunta sobre cada iteração. Eu sou novo no Python e tenho alguma experiência em c #. Então, eu estou pensando, se existe alguma função equivalente no Python para iteração em todos os itens da minha coleção, por exemplo
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
ou algo parecido com isto.
Respostas:
Certo. Um loop for.
fonte
for k,v in enumerate(pets):
etcComo isso:
De fato, o Python possui apenas
for
loops de estilo foreach .fonte
Também é interessante observar isso
Para iterar sobre os índices de uma sequência, você pode combinar
range()
elen()
como segue:resultado
Edição # 1: Maneira alternativa:
Ao percorrer uma sequência, o índice de posição e o valor correspondente podem ser recuperados ao mesmo tempo usando a
enumerate()
funçãoresultado
fonte
Para uma resposta atualizada, você pode criar uma
forEach
função no Python facilmente:Você também pode adaptar isso para
map
,reduce
,filter
, e quaisquer outras funções de matriz de outros idiomas ou precedência que você gostaria de trazer mais. Os loops são rápidos o suficiente, mas a placa da caldeira é mais longa queforEach
as outras funções. Você também pode estender a lista para ter essas funções com um ponteiro local para uma classe, para poder chamá-las diretamente nas listas.fonte
Embora as respostas acima sejam válidas, se você estiver repetindo um ditado {key: value}, é esta a abordagem que eu gosto de usar:
Portanto, se eu quisesse fazer algo como stringify todas as chaves e valores no meu dicionário, faria o seguinte:
Isso evita qualquer problema de mutação ao aplicar esse tipo de iteração, o que pode causar comportamento irregular (às vezes) na minha experiência.
fonte
copy
do dicionário, para que possa manipular o dicionário durante a iteração (embora a sua cópia será de todas as chaves e valores antes de qualquer modificação) - comofor key, value in Dictionary.copy().items()
Para um ditado, podemos usar um loop for para iterar através de
index
,key
evalue
:fonte