파이썬 foreach 해당


191

파이썬으로 뛰어 들어 foreach 반복에 대한 질문이 있습니다. 저는 Python을 처음 사용하고 C #에 경험이 있습니다. 그래서 내 컬렉션의 모든 항목에서 반복을 위해 Python에 동등한 기능이 있는지 궁금합니다.

pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]

또는 이와 같은 것.


답변:


294

확실한. for 루프.

for f in pets:
    print f

인덱스 / 키도 알아야한다면 어떻게해야합니까?
촛대

25
그런 다음 열거 형을 사용합니다. for k,v in enumerate(pets):
Hannu

30

이처럼 :

for pet in pets :
  print(pet)

실제로 파이썬 에는 foreach 스타일 루프 있습니다 for.


12

이것을 관찰하는 것도 흥미 롭습니다

시퀀스의 인덱스를 반복하려면 결합 할 수 range()len()같은 다음과 같습니다 :

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
  print(i, a[i])

산출

0 Mary
1 had
2 a
3 little
4 lamb

편집 # 1 : 다른 방법 :

시퀀스를 반복 할 때 enumerate()함수를 사용하여 위치 인덱스와 해당 값을 동시에 검색 할 수 있습니다 .

for i, v in enumerate(['tic', 'tac', 'toe']):
  print(i, v)

산출

0 tic
1 tac
2 toe

4

업데이트 된 답변을 얻으려면 forEachPython에서 쉽게 함수를 작성할 수 있습니다.

def forEach(list, function):
    for i, v in enumerate(list):
        function(v, i, list)

또한이 적응할 수있는 map, reduce, filter, 다른 언어 또는 우선 순위에서 다른 어떤 배열 함수를 사용하면 데려 싶어. For 루프는 빠르지 만 보일러 플레이트는 더 길거나 forEach다른 기능입니다. 또한 목록을 확장하여 클래스에 대한 로컬 포인터로 이러한 함수를 갖도록하여 목록에서 직접 호출 할 수도 있습니다.


1
사용법을 포함시킬 수 있습니까?
ScottyBlades

3

위의 답변이 유효하지만 dict {key : value}를 반복하는 경우 이것이 내가 사용하는 접근법입니다.

for key, value in Dictionary.items():
    print(key, value)

따라서 사전의 모든 키와 값을 문자열 화하는 것과 같은 작업을 수행하려면 다음과 같이하십시오.

stringified_dictionary = {}
for key, value in Dictionary.items():
    stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary

이렇게하면이 유형의 반복을 적용 할 때 발생하는 돌연변이 문제를 피할 수 있습니다.


이에 대한 더 읽기 대안은을 반복하는 것 copy처럼 - 당신이 사전을 조작 할 수 있도록 (복사본 전에 어떤 수정에 대한 모든 키와 값이 될 것입니다하지만) 반복하는 동안, 사전의for key, value in Dictionary.copy().items()
마크 Maxmeister

1

사전인가를 위해 우리는을 반복하는 루프를 사용할 수 있습니다 index, key그리고 value:

dictionary = {'a': 0, 'z': 25}
for index, (key, value) in enumerate(dictionary.items()):
     ## Code here ##
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.