파이썬의 for문과 배열 처리

파이썬의 반복구문인 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

myFunction(ar[i])

이렇게 쓰면 될 것이다. 또는

j=0

for i in ar:

if j>k and j

myFunction(ar)

j+=1

이렇게 쓸 수도 있다. 하지만 이렇게 작성하는 것은 전혀 파이썬스러운 코딩이 아니다. 파이썬처럼 코딩하는 것은 제일 처음에 쓴 바로 그것이다. 그래서 지금 어떻게 하고 있냐고?

myFunction(ar[k:k+m])

이렇게 해보고 있다. 뭔가 이상하지만 이제 파이썬 스러워졌다.

코멘트

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.