19.7 연습문제: 리스트의 일부만 가져오기
리스트 a와 b 두 개가 주어집니다. 다음 소스 코드를 완성하여 a는 세 번째 요소부터 마지막 요소까지, b는 첫 번째 요소부터 네 번째 요소까지 출력되게 만드세요. 출력 결과는 리스트 형태라야 합니다.
practice_list.py
a = ['alpha', 'bravo', 'charlie', 'delta', 'echo'] b = [100, 200, 300, 400, 500, 600] print(① ) print(② )
실행 결과
['charlie', 'delta', 'echo'] [100, 200, 300, 400]
정답
① a[2:] 또는 a[2:5] 또는 a[2:len(a)] a[-3:] 또는 a[-3:5] 또는 a[-3:len(a)] ② b[:4] 또는 b[0:4] b[:-2] 또는 b[0:-2]
해설
리스트 a는 세 번째 요소부터 마지막 요소까지 가져와야 하므로 a[2:]처럼 시작 인덱스는 2, 끝 인덱스를 생략합니다. 또는, a[2:5]처럼 끝 인덱스에 5를 지정하여 마지막 요소까지 가져옵니다. 이때 끝 인덱스는 가져오려는 인덱스보다 1을 더 크게 지정해야 하므로 4가 아닌 5입니다. a[2:len(a)]처럼 len을 사용하여 끝 인덱스에 리스트의 길이를 넣어도 됩니다.
a[-3:], a[-3:5], a[-3:len(a)]처럼 시작 인덱스에 음수를 지정해도 됩니다. 여기서는 -3을 지정했으므로 뒤에서 세 번째 요소부터 가져옵니다.
리스트 b는 첫 번째 요소부터 네 번째 요소까지 가져와야 하므로 b[:4]처럼 시작 인덱스는 생략하고 끝 인덱스에 4를 지정합니다. 또는, b[0:4]처럼 시작 인덱스에 0을 넣어도 됩니다. 마찬가지로 끝 인덱스는 가져오려는 인덱스보다 1을 더 크게 지정해야 하므로 3이 아닌 4입니다.
b[:-2]와 b[0:-2]처럼 끝 인덱스에 음수를 지정해도 됩니다. -2는 뒤에서 두 번째 요소인데 끝 인덱스로 사용되었으므로 실제로는 뒤에서 세 번째 요소(-3)까지 가져옵니다.
끝 인덱스는 자주 헷갈리는 부분이므로 개념을 정확히 익혀 두는 것이 좋습니다.