11.6 연습문제: 최근 3년간 인구 출력하기

리스트 year에 연도, population에 서울시 인구수가 저장되어 있습니다. 다음 소스 코드를 완성하여 최근 3년간 연도와 인구수가 리스트로 출력되게 만드세요.

practice_slice.py

year = [2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018]
population = [10249679, 10195318, 10143645, 10103233, 10022181, 9930616, 9857426, 9838892]
 
print(         )
print(               )

실행 결과

[2016, 2017, 2018]
[9930616, 9857426, 9838892]

정답

year[-3:]
population[-3:]

해설

최근 3년간 연도와 인구수를 출력하라고 했으므로 리스트의 마지막 요소 3개를 잘라서 출력하는 문제입니다.

먼저 시퀀스 객체는 인덱스에 음수를 지정하면 뒤에서부터 요소에 접근한다고 했습니다. 따라서 인덱스에 -3을 지정하면 뒤에서 3번째 요소에 접근할 수 있습니다. 그리고 슬라이스를 사용하여 시작 인덱스를 -3으로 지정하고, 끝 인덱스를 생략하면 리스트의 마지막 요소 3개를 잘라서 가져옵니다.

물론 year[len(year) - 3:]처럼 len 함수로 리스트의 길이를 구한 뒤 3을 빼서 시작 인덱스에 지정하는 방법도 가능하지만, 그냥 -3을 지정하는 방법이 더 간단합니다. 마찬가지로 year[-3:len(year)]처럼 끝 인덱스에도 len 함수로 리스트의 길이를 구해서 넣어도 되지만, 마지막 요소들을 출력할 때는 끝 인덱스를 생략하는 방법을 주로 사용합니다.