[바로바로 파이썬 04] 리스트
리스트List는 여러 값을 하나로 묶어 저장하는 자료형입니다. 이미 몇 번 본 적 있는 대괄호로 감싸고 쉼표로 값을 구분해 만든 자료형이 바로 리스트입니다. 다음은 숫자형 데이터만 담은 리스트를 만들고 출력하는 코드입니다.
실행 결과를 보면 입력한 값이 대괄호로 감싸인 형태 그대로 출력됩니다. 이처럼 대괄호 안에 값을 쉼표로 구분해 나열한 것이 리스트입니다. 리스트 안에 쉼표로 구분한 각각의 값을 요소Element라고 합니다. 즉, 리스트는 여러 요소를 하나로 묶어 놓은 데이터라고 생각하면 됩니다. 그렇다면 리스트를 왜 사용할까요?
리스트 기초 연습하기
리스트가 왜 필요한지는 여러 값을 다뤄보면 금방 이해할 수 있습니다. 예를 들어 여러분이 숫자 5개의 평균을 계산해야 한다면 어떻게 할 수 있을까요? 점수 평균을 계산하는 예제를 통해 리스트의 기초와 필요성을 알아보겠습니다.
만약 리스트를 사용하지 않고 숫자형 데이터 5개를 변수에 저장한다면 이렇게 코드를 작성해야 할 겁니다.
틀린 코드는 아닙니다. 그렇다면 평균 점수를 구하려면 어떻게 해야 할까요? 다음과 같이 작성하면 됩니다.
하지만 항상 이런 방식으로 작성할 수는 없습니다. 예를 들어 점수가 100개라면 어떻게 해야 할까요? 변수도 100개가 필요하고, 평균을 구하는 식에도 100개의 변수를 모두 입력해야 합니다. 생각만 해도 불편합니다.
이럴 때 리스트가 필요합니다. 다음 코드를 작성해서 실행해봅시다.
코드를 보면 scores 변수 하나에 모든 값을 담아 저장했습니다. 그래서 score1, score2와 같은 개별 변수를 만들 필요가 없습니다. 또한 리스트에는 합계나 길이를 구하는 sum( ), len( ) 함수를 바로 적용할 수 있습니다. 만약 점수가 추가되더라도 scores 리스트에 숫자를 쉼표로 구분하여 더 입력하면 됩니다. 프로그램을 크게 수정할 필요가 없으니 편리합니다.
03장에서는 문자열의 인덱싱, 슬라이싱을 배웠습니다. 문자열은 여러 문자가 모인 데이터라고 했었죠? 리스트도 여러 값이 모여 있는 데이터입니다. 따라서 리스트도 문자열과 마찬가지로 인덱싱과 슬라이싱을 할 수 있습니다. 다음은 리스트에서 인덱싱을 사용하는 예시 코드로, 특정 요소에 접근해서 해당 요소의 값을 출력합니다.
실행 결과를 보면 colors[0]은 첫 번째 요소인 빨강을, colors[1]은 두 번째 요소인 파랑을 가져옵니다. colors[-1]처럼 음수를 쓰면 뒤에서부터 세어 마지막 요소인 초록이 나옵니다. 문자열에서 쓰던 인덱스 규칙이 리스트에도 그대로 적용된 것이죠.
슬라이싱도 이어서 알아봅니다. 슬라이싱 역시 문자열에서 배운 내용과 크게 다르지 않으므로 별도의 설명 없이 코드를 입력해보면 바로 이해할 수 있을 것입니다.
실행 결과를 보면 문자열의 슬라이싱과 같은 방식으로 동작합니다. 0:3으로 지정하면 인덱스 0부터 2까지 잘라 [10, 20, 30]을 출력하고, 5:로 지정하면 인덱스 5부터 마지막 요소까지 출력합니다.
이번에는 리스트에 +와 * 연산자를 사용해 연결과 반복을 해봅시다. 리스트는 더하기, 곱하기 연산을 지원합니다. 이 두 가지 연산만 알아도 리스트를 훨씬 자유롭게 다룰 수 있습니다. 다음 코드를 실행해 결과를 확인해봅시다.
실행 결과를 보면 문자열의 더하기와 곱하기 연산과 비슷하게 동작한다는 것을 알 수 있습니다. 더하기는 말 그대로 두 리스트를 순서대로 합친 것이고, 곱하기는 리스트를 지정한 횟수만큼 반복해 이어 붙인 것입니다. 빼기나 나누기는 사용할 수 없습니다. 이후 예제를 실습하며 리스트 연산자는 필요할 때 종종 사용하겠습니다.
