본문 바로가기
Coding/초보자를 위한 파이썬 300제

초보자를 위한 파이썬 300제 // 176 index

by 포스트it 2021. 2. 7.
728x90
반응형

 

문제

리스트를 아래와 같이 출력하라.

my_list = ["가", "나", "다", "라", "마"]

가 나 다
나 다 라
다 라 마

내풀이

my_list = ["가", "나", "다", "라", "마"]
for i in range(1,4):
    print(my_list[i-1] , my_list[i], my_list[i+1])
    
결과값
가 나 다
나 다 라
다 라 마

정답

인덱싱을 사용해서 코드를 작성해보면 인덱스간의 규칙관계가 눈에 들어옵니다. 같은 행에 있는 두 개의 데이터는 인덱스가 +1 차이납니다. 또한 행이 증가할 때마다 인덱스가 +1 씩 증가합니다. 045번 문제와 다른점은 한 행에 출력되는 데이터가 3개라는 것입니다.

print(my_list[0], my_list[1], my_list[2])
print(my_list[1], my_list[2], my_list[3])
print(my_list[2], my_list[3], my_list[4])

for문내의 print 문에 출력하고 싶은 값의 위치를 나열합니다. i가 0일 때는 0, 1, 2 위치의 값이 출력됩니다. i가 1일 때는 1, 2, 3 위치의 값이 출력됩니다. * i가 2일 때는 2, 3, 4 위치의 값이 출력됩니다.

for i in [0, 1, 2]:
    print(my_list[i], my_list[i+1], my_list[i+2])

보다 일반적인 형태로 코드를 변경해 봅시다. 아래 세 개의 코드는 모두 동일한 결과를 출력합니다. 인덱스를 만들어 내는 것과, 인덱싱의 코드가 변하는 것을 눈여겨 보세요.

for i in range( len(my_list) - 2 ):
    print(my_list[i], my_list[i+1], my_list[i+2])
    
for i in range( 1, len(my_list) - 1 ):
    print(my_list[i-1], my_list[i], my_list[i+1])
    
for i in range( 2, len(my_list) ):
    print(my_list[i-2], my_list[i-1], my_list[i])

코드를 한번씩 써보면서 꼭 인덱스 활용에 익숙해지세요 !

 

728x90
반응형

댓글