컴퓨터/파이썬
파이썬의 for문과 배열 처리
snowall
2015. 8. 31. 01:25
파이썬의 반복구문인 for는 배열을 처리하는데 매우 간단한 방법을 제공한다. 가령, ar이라는 배열이 이미 선언되어 있으면, ar의 원소들을 하나하나 끌어서 처리하는데 다음과 같이 쓰면 된다.
for i in ar:
myFunction(i)
문제는 내가 i가 몇번째 원소인지 굳이 알아야만 하는 경우에 나타난다. 내가 지금 푸는 문제는 전체 길이가 N인 배열에서 k번째 원소와 k+m번째 원소 사이에 있는 원소에만 함수를 적용해야 하는 상황이기 떄문에 굳이 필요하다. 이 경우, 고전적인 방법으로
for i in range(len(ar)):
if i>k and i<k+m:
myFunction(ar[i])
이렇게 쓰면 될 것이다. 또는
j=0
for i in ar:
if j>k and j<k+m:
myFunction(ar)
j+=1
이렇게 쓸 수도 있다. 하지만 이렇게 작성하는 것은 전혀 파이썬스러운 코딩이 아니다. 파이썬처럼 코딩하는 것은 제일 처음에 쓴 바로 그것이다. 그래서 지금 어떻게 하고 있냐고?
myFunction(ar[k:k+m])
이렇게 해보고 있다. 뭔가 이상하지만 이제 파이썬 스러워졌다.