오늘은 파이썬 리스트에 대해 알아보도록 하겠다.
이전 시간에 파이썬 자료형에 대해서는 한번 알아본 바가 있으니 참고하길 바란다.
리스트는 파이썬에서 사용되는 여러 집합형 자료형 중 가장 융통성이 있다. 대괄호로 정의되며 쉼표(,)를 구분된 값들의 목록이라 생각하면 된다.
# 리스트
>>> fruit = ['apple', 'orange', 'tomato', 'banana']
>>> fruit
['apple', 'orange', 'tomato', 'banana']
위의 예제처럼 변수처럼 리스트를 정의하고 fruit을 출력해보면 그 안에 들어있는 값(요소)들을 확인할 수 있다. 값이 없는 리스트의 경우 '[]' 대괄호 사이을 비워두면 된다.
인덱싱은 말 그대로 번호를 매겨놓는 것을 말하며 그렇기 때문에 번호(index)에 해당하는 값을 바로 가져올 수가 있다.
# 리스트 인덱싱 [0, 1, 2, 3] <> [-4, -3, -2, -1]
>>> fruit[3]
'banana'
>>> fruit[-1]
'banana'
>>> fruit[1]
'orange'
>>> fruit[0]
'apple'
예제를 보면 의문이 들 수 있다. fruit[-1]인데 왜 'banana'가 나오나? 리스트를 인덱싱할 때 [-1]은 리스트 데이터의 제일 마지막 데이터를 의 미하 게 된다. ['apple', 'orange', 'tomato', 'banana'] 은 순서대로 [-4], [-3], [-2], [-1]에 해당된다 보면 된다.
슬라이싱은 인덱싱을 여러 개 붙여서 사용하는 거라 생각하면 된다.
# fruit 리스트의 값 (0, 1, 2, 3)
>>> fruit[1:] # fruit [1부터 리스트의 끝까지]
['orange', 'tomato', 'banana']
>>> fruit[-2:] # fruit [-2부터 0까지]
['tomato', 'banana']
>>> fruit[1:2] # fruit 1부터 2 사이의 값
['orange']
>>> fruit[1:3] # fruit 1부터 3 사이의 값
['orange', 'tomato']
예제를 보면 [1:2]라고 했을 때 왜 tomato가 나오지 않는가 라는 의문이 들 수 있다. 그것은 아래 그림을 통해 알아보도록 하자.
즉, [1:3]은 1에서 3 사이의 값이므로 orange와 tomato만 나오는 것이다.
리스트는 가변적이어서 리스트 이어 붙이기도 가능하다.
>>> ['grapes'] + fruit
['grapes', 'apple', 'orange', 'tomato', 'banana']
>>> fruit + ['durian']
['apple', 'orange', 'tomato', 'banana', 'durian']
>>> fruit
['apple', 'orange', 'tomato', 'banana']
그렇다면 리스트에 데이터를 추가하거나 삭제하고 싶다면 어떻게 할까?
그럴 때는 바로 함수(method)를 사용해야 한다. 이전 시간에 배운 것처럼 이미 리스트 객체에 사용할 수 있는 함수(method)가 정의되어 있는 것이다.
삽입 : .append(항목) = 리스트의 항목을 더합니다.
>>> fruit.append('grapes')
>>> fruit
['apple', 'orange', 'tomato', 'banana', 'grapes']
리스트 개수 확인: len(list명) = 리스트의 개수를 보여줍니다.
>>> len(fruit)
5
삭제 : del 리스트[n] = 리스트의 n을 삭제합니다.
>>> fruit
['apple', 'orange', 'tomato', 'banana', 'grapes']
>>> del fruit[0]
>>> fruit
['orange', 'tomato', 'banana', 'grapes']
리스트 중첩은 리스트 안에 리스트를 넣는 것을 말한다.
>>> fruit
['orange', 'tomato', 'banana', 'grapes']
>>> meat = ['pig', 'cow', 'chicken']
>>> meat
['pig', 'cow', 'chicken']
>>> eat = [fruit, meat]
>>> eat
[['orange', 'tomato', 'banana', 'grapes'], ['pig', 'cow', 'chicken']]
이외에도 리스트 객체에 사용할 수 있는 메서드들이 많으니 궁금한 사람은 직접 찾아서 공부해보길 바란다.
내용이 너무 많아져 여기서는 다루지 않도록 하겠다.
다음 시간에는 튜플에 대해 좀 더 알아보도록 하겠다.
[python] 파이선 / 파이썬 집합 (0) | 2020.08.07 |
---|---|
[python] 파이선 / 파이썬 튜플 (0) | 2020.08.06 |
[python] 파이썬 / 파이선 함수 (0) | 2020.07.30 |
[python] 파이선 / 파이썬 조건문, 반복문 (0) | 2020.07.28 |
[python] 파이선 / 파이썬 연산자와 연산 우선순위 (0) | 2020.07.27 |