본문 바로가기

Language/Python

[Python] 리스트(List) 자료형이란?

파이썬에서는 숫자, 문자, 불리언(불) 등 다양한 자료형들을 가지고 있죠.

숫자, 문자, 불리언(불)은 하나의 값을 저장하는 자료형이에요.

근데 만약에 여러분들이 여러 개의 숫자나 문자를 저장하고 싶다면?

아마 아래 소스코드처럼 작성하지 않을까요?

 

# 숫자 1부터 10까지 저장하기
num1 = 1
num2 = 2
num3 = 3
...
num10 = 10

# 여러 명의 사람 이름을 저장하기
name1 = '홍길동'
name2 = '강호동'
name3 = '유재석'
...
name100 = '한국인'

 

숫자 10개를 저장하기 위해서 변수를 10번 만들었어요.

마찬가지로 이름 100개를 작성하기 위해서 변수를 100개나 만들었죠.

만약 1,000명, 10,000명의 이름을 작성하라고 하면 변수를 1,000개, 10,00개나 만들어야겠죠?

(여러분…들…이라면 할 수 있어요!)

 

그런데 예시로 작성한 소스코드를 보면 num이라는 변수 뒤에 숫자를 붙여서 구분해주고 있다는 것을 알 수 있어요.

그럼 굳이 num1, num2… 이렇게 변수를 여러개 만들지 말고

num이라는 변수에 첫 번째 값은 1이고 두 번째 값은 2라고 알려주면 조금 더 편하겠죠?

 

이런 역할을 하는게 바로 리스트라는 자료형이에요.

즉, 여러 자료형 데이터를 저장할 수 있는 목록이죠.

 

여러분, 학교에서 출석부를 열어본 적 있나요?

출석부를 보면 이렇게 번호와 이름이 적혀있을거에요.

 

 

리스트도 이런 구조를 가지고 있어요.

그저 옆으로 눕혔을 뿐이에요.

 

 

컴퓨터가 읽기 쉽게 name 리스트를 만들어서 ‘0번째는 강호동, 1번째는 김지민, 2번째는 유재석…’

이런 식으로 값을 저장하게 해줘요.

 

아! 왜 ‘강호동’이 1번이 아니냐고요?

우리는 출석 부를 때 1번부터 시작하잖아요? 하지만 컴퓨터는 0번부터 시작해요!

프로그래밍을 하면서 인덱스(Index) 번호를 많이 사용하게 되는데 꼭 0번부터 시작한다는 것을 기억해줘요.

 

그럼 리스트에서 사용하는 용어부터 알아볼까요?

 

먼저 요소(Element)에 대해 알아볼까요?

요소는 리스트에 저장되어 있는 값을 의미해요.

 

대괄호 안에 1, 2, 3, … 10이라는 숫자들이 저장되어 있는데

리스트를 구성하고 있는 이 숫자들을 요소(Element)라고 불러요.

당연히 숫자뿐만 아니라 문자도 요소가 될 수 있겠죠?

즉, “요소(Element)는 뭐다? 값이다!” 라고 알면 되요.

 

다음은 인덱스(Index).

인덱스는 요소가 저장되어 있는 위치를 말해요.

더 쉽게 설명하자면… 방 번호라고 할까요?

 

num이라는 집에 0번째 방에는 숫자 1이, 1번째 방에는 숫자 2가 저장되어있네요.

이렇게 리스트에서 요소(Element)들이 머무를 수 있는 방을 만들어주는데요.

이 방의 위치를 찾기 쉽게 인덱스(Index)라는 번호로 구분해주고 있어요.

 

이제 리스트(List)에 대해 알아봤으니 파이썬을 통해 처음 작성한 예시 소스코드를 수정해볼께요.

 

# List를 사용해서 1부터 10까지 저장하기
num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# num 변수의 자료형 확인하기
print(type(num))
>> (출력) <class 'list'>

# List에 값이 잘 들어갔는지 확인하기
print(num[0])
print(num[1])
print(num[2])
..
print(num[9])

 

파이썬에서는 대괄호([])를 이용해서 리스트를 만들어요.

대괄호 안에 숫자를 넣을 수도 있고 문자를 넣을 수도 있어요.

심지어 리스트 안에 리스트를 넣을 수도 있어요.

이렇듯 리스트는 모든 자료형을 저장할 수 있어요.

 

리스트 값 꺼내기

 

그리고 값을 확인할 때에는 변수이름[index] 형태로 작성하면 되요.

예제처럼 num[0]이라고 작성하면 num의 0번째 방에 있는 값(1)을 꺼낼 수 있는거죠.

그런데 값을 확인할 때마다 num[0], num[1], num[2]… 이렇게 매번 작성해야 할까요?

이럴 때에는 반복문을 이용하면 되요.

 

이번에는 이름을 저장했던 예시를 사용해볼게요.

 

# 여러 명의 사람 이름을 저장하기
name = ['홍길동', '강호동', '유재석', ... '한국인']

# 반복문을 통해 name이라는 리스트에 값이 잘 들어갔는지 확인하기
for index in range(len(name)):
    print(name[index])

 

소스코드가 조금 복잡해보일 수 있지만 여러분들에게 index 사용을 알려주기 위해 저렇게 작성했어요.

먼저 소스코드를 설명하자면 name이라는 리스트 변수의 길이만큼 반복문을 실행해달라는 의미에요.

이때 index에는 당연히 name의 인덱스 번호가 나타나겠죠?

이제 name[index]를 통해 값을 출력하면 name에 여러분들이 작성한 값이 잘 들어갔는지 확인할 수 있이요.

 

리스트에 대해 조금 이해가 되었나요?

리스트를 통해 사용할 수 있는 기능들과 반복문에 대해서는 다른 게시글을 통해 알아보도록 할게요.