다시 한 번 강조하지만, 콜론 기호(:)와 마찬가지로 들여쓰기는 중요하다.
값이 for 루프로 전달되는 방식은 함수로 인수가 전달되는 방식과 비슷하다. 결과적으로 루프 변수에 대입된 값은 기존 데이터에 아무런 영향을 미치지 않는다.
my_lst = [10, 15, 25]
for thing in my_lst:
thing *= 2
앞 코드의 루프는 my_lst의 각 항목에 2를 곱할 것 같지만, 그렇지 않다. 각 항목에 2를 곱하고 싶다면 다음과 같이 인덱스를 사용해야 한다.
my_lst = [10, 15, 25]
for i in [0, 1, 2]:
my_lst[i] *= 2
이 코드가 my_lst의 각 항목을 2배로 만들어서 리스트 데이터를 [20, 30, 50]으로 만든다.
이 방식으로 인덱스를 만들려면 다음과 같이 열거형 인덱스를 만들어야 한다.
0, 1, 2, ... N-1
N은 리스트 길이다. range 함수를 사용하면 이와 같은 열거형 인덱스를 자동으로 만들 수 있다. 가령 길이가 5인 배열의 각 항목을 2배로 늘리고 싶다면 다음 코드를 사용하면 된다.
my_lst = [100, 102, 50, 25, 72]
for i in range(5):
my_lst[i] *= 2