10.1 리스트 만들기

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

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

a = 10
b = 20

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

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

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

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

10.1 리스트 만들기

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

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

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

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

a = [38, 21, 53, 62, 19]와 같이 변수에 [ ]로 값을 저장하여 리스트를 만들었습니다. 특히 리스트에 저장된 각 값 요소(element)라고 부릅니다. 이 단어를 잘 기억해두세요.

10.1.1  리스트에 여러 가지 자료형 저장하기

리스트는 문자열, 정수, 실수, 불 등 모든 자료형을 저장할 수 있으며 자료형을 섞어서 저장해도 됩니다(불 자료형은 'Unit 8 불과 비교, 논리 연산자 알아보기'에서 설명하겠습니다).

>>> person = ['james', 17, 175.3, True]
>>> person
['james', 17, 175.3, True]

이처럼 리스트에 여러 가지 자료형을 사용하면 관련 정보를 하나로 묶기 좋습니다.

에러

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

10.1.2  빈 리스트 만들기

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

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

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

10.1.3  range를 사용하여 리스트 만들기

이번에는 range를 사용하여 리스트를 만들어보겠습니다. range는 연속된 숫자를 생성하는데 range에 10을 지정하면 0부터 9까지 숫자를 생성합니다. 즉, 지정한 횟수 숫자는 생성되는 숫자에 포함되지 않습니다.

  • range(횟수)
>>> range(10)
range(0, 10)

range(0, 10)이라고 나와서 10까지 생성될 것 같지만 10은 포함되지 않습니다. 다음과 같이 listrange(10)을 넣어보면 0부터 9까지 들어있는 리스트가 생성됩니다.

  • 리스트 = list(range(횟수))
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range는 시작하는 숫자와 끝나는 숫자를 지정할 수도 있습니다. 이때도 끝나는 숫자는 생성되는 숫자에 포함되지 않습니다. 즉, listrange(5, 12)를 넣으면 5부터 11까지 들어있는 리스트가 생성됩니다.

  • 리스트 = list(range(시작, 끝))
>>> b = list(range(5, 12))
>>> b
[5, 6, 7, 8, 9, 10, 11]

이번에는 증가폭을 사용하는 방법입니다. range에 증가폭을 지정하면 해당 값만큼 증가하면서 숫자를 생성합니다.

  • 리스트 = list(range(시작, 끝, 증가폭))
>>> c = list(range(-4, 10, 2))
>>> c
[-4, -2, 0, 2, 4, 6, 8]

range(-4, 10, 2)는 -4부터 8까지 2씩 증가합니다. 여기서 끝나는 값은 10이므로 10까지 증가하지 않고 8까지 생성됩니다.

만약 증가폭을 음수로 지정하면 해당 값만큼 숫자가 감소합니다.

>>> d = list(range(10, 0, -1))
>>> d
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

range(10, 0, -1)은 10부터 1씩 감소하며 0은 포함되지 않으므로 1까지 생성됩니다.