Unit 19. 리스트와 튜플 사용하기

지금까지 변수에는 값을 한 개씩만 저장했습니다.

a = 10
b = 20

그럼 값을 30개 저장하려면 어떻게 해야 할까요? 다음과 같이 변수 30개에 값 30개를 저장하면 됩니다.

a1 = 10
a2 = 20
# ... (생략)
a29 = 60
a30 = 40

변수 30개를 일일이 타이핑하기는 쉽지 않습니다. 만약 저장할 값이 3,000개라면 정말 끔찍하죠? 이때는 리스트를 사용하면 편리합니다. 리스트는 말 그대로 목록이라는 뜻이며 값을 일렬로 늘어놓은 형태입니다(보통 리스트의 값은 코드로 생성하는 경우가 많아서 타이핑할 일이 거의 없습니다).

이번 유닛부터 리스트를 만드는 방법과 기본 사용 방법을 알아보겠습니다.

19.1 리스트 만들기

변수에 값을 저장할 때 [ ](대괄호)로 묶어주면 리스트가 되며 각 값은 ,(콤마)로 구분해줍니다.

  • 리스트 = [값, 값, 값]

그럼 숫자가 5개 들어있는 리스트를 만들어보겠습니다.

>>> a = [38, 21, 53, 62, 19]
>>> a
[38, 21, 53, 62, 19]

a = [38, 21, 53, 62, 19]와 같이 변수에 [ ]로 값을 저장하여 리스트를 만들었습니다.

리스트는 문자열, 정수, 실수, 불 등 모든 자료형을 저장할 수 있으며 자료형을 섞어서 저장해도 됩니다(물론 리스트 안에 리스트, 튜플, 딕셔너리, 세트, 함수 등도 저장할 수 있습니다, 딕셔너리, 세트는 뒤에서 자세히 설명하겠습니다).

>>> a = ['Hello', 10, 3.5, True]
>>> a
['Hello', 10, 3.5, True]
  • SyntaxError: invalid syntax: [ ]의 짝이 맞지 않거나 각 값을 구분할 때 ,를 넣지 않아서 발생하는 에러입니다. [ ]의 짝이 맞는지, ,를 빠뜨리지 않았는지 확인해주세요.

빈 리스트를 만들 때는 [ ]만 지정하거나 list를 사용하면 됩니다.

  • 리스트 = []
  • 리스트 = list()
>>> a = []
>>> a
[]
>>> b = list()
>>> b
[]

빈 리스트는 쓸모가 없을 것 같지만, 보통 빈 리스트를 만들어 놓은 뒤에 새 값을 추가하는 방식으로 사용합니다. 리스트에 값을 추가하는 방법은 다음 유닛에서 자세히 설명하겠습니다.

이번에는 listrange를 사용하여 리스트를 만들어보겠습니다.

  • 리스트 = list(range(횟수))
  • 리스트 = list(range(시작, 끝))
  • 리스트 = list(range(시작, 끝, 증가폭))
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = list(range(10, 0, -1))
>>> b
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> c = list(range(5, 12))
>>> c
[5, 6, 7, 8, 9, 10, 11]
>>> d = list(range(10, 20, 2))
>>> d
[10, 12, 14, 16, 18]

list(range(10))와 같이 list 안에 range를 넣으면 리스트가 생성됩니다. 물론 range의 기능을 활용하여 특정 범위의 숫자를 넣거나 숫자의 순서를 역순으로 넣을 수도 있습니다.

이번에는 list 안에 문자열을 넣어보겠습니다.

>>> list('Hello')
['H', 'e', 'l', 'l', 'o']

list에 문자열을 넣으면 문자열이 문자 리스트로 변환됩니다. 즉, 문자열 'Hello'는 문자 하나하나가 리스트의 요소로 들어가서 리스트 ['H', 'e', 'l', 'l', 'o']가 만들어집니다.