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

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

포스트it 2021. 2. 6. 00:53
728x90
반응형

 

문제

my_list를 아래와 같이 출력하라.

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

가 나
나 다
다 라

내풀이

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

정답

어렵다면 한단계씩 생각해 봅시다. for문을 사용하지 않고 인덱싱만을 사용해서 코드를 작성해보면 인덱스간의 규칙관계가 눈에 들어옵니다. 같은 행에 있는 두 개의 데이터는 인덱스가 +1 차이납니다. 또한 행이 증가할 때마다 인덱스가 +1 씩 증가합니다.

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

분석한 규칙을 바탕으로 반복문을 작성합시다. 아래는 첫 열 "가 나 다" 를 한 라인에 하나씩 출력하는 코드입니다. for 문이 인덱스를 0, 1, 2 차례로 바인딩하고 인덱싱을 사용해 값을 출력합니다.

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

한 행에 두 개의 데이터를 출력하고 싶기 때문에 이전 코드의 print 문에 출력하고 싶은 데이터를 추가합니다. 같은 행의 두 데이터는 인덱스 차이가 +1 이라는 것을 잊지마세요. i가 0일 때는 0, 1 위치의 값이 출력됩니다. i가 1일 때는 1, 2 위치의 값이 출력됩니다. * i가 2일 때는 2, 3 위치의 값이 출력됩니다.

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

위의 코드를 사용해도 원하는 출력값을 얻을 수 있지만 아래는 코드를 보다 일반적인 형태로 변경했습니다. len 함수를 사용한 것을 눈여겨 보세요.

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

아래와 같이 작성해도 됩니다. 인덱스를 갖고 노는 겁니다. for문을 단계별로 풀어 써가며 확인해보세요.

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

음... 뭔가 해설을 보니까 더 햇갈리는거 같다 하지만 인덱스를 활용하는 방법을 순차적으로
알려준거기 때문에 꼭 한번씩 코드 써보고 적용해보자 !

 

728x90
반응형