[Python, 기초 문법] 자료형(Data Type) (2) - List, 인덱싱과 슬라이싱
이전에 단일 데이터 형태의 자료형에 대해 알아보았습니다.
이제 데이터 묶음 형태의 자료형에 대해 배워봅시다.
데이터 묶음(자료구조)
데이터 묶음 형태의 자료형으로는
List, Tuple, Set, Dictionary이 있습니다.
데이터 묶음 형태는 전문적인 용어로
자료구조라고 표현합니다.
자료구조의 위키피디아 설명에 의하면,
"자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미"
라고 합니다. 비단 데이터들이 모여있는 형태말고도,
그 데이터들이 어떤 관계로 묶여있는지,
그 데이터에 어떻게 접근하거나 사용할 수 있는 지에 대한 개념도
자료구조라고 하는 것 같네요.
여기서는 이해하기 쉽게 데이터 묶음이라고 명명하겠습니다.
자료구조에 대한 자세한 설명은 위키피디아에서 확인할 수 있습니다.
링크 남겨두겠습니다.
위키피디아-자료구조 :
데이터 묶음의 경우
여러 데이터를 한 데 보관한다는 점에서
공통점을 가지고 있으나,
어떤 방식으로 모아두고 있느냐에 따라 차이가 있습니다.
이제부터 하나하나 알아보도록 하죠.
List(리스트)
먼저 List(리스트) 입니다.
데이터 묶음 형태의 제일 기본적인 형태입니다.
대괄호([])가 데이터들을 감싸고, 쉼표로 데이터가 구분됩니다.
아래 코드를 실행해 봅시다,
type([1,2,3])
list
데이터 묶음 형태는 데이터를 다루는 몇 가지 명령어를 가지고 있습니다.
함께 알아보도록 하죠.
먼저 인덱싱과 슬라이싱입니다.
리스트 안의 값을 전부 읽을 수도 있지만,
내가 원하는 순번의 값, 혹은 원하는 범위의 값을 읽어올 수도
있습니다.
전자를 인덱싱, 후자를 슬라이싱이라고 합니다.
아래 코드를 입력해봅시다. 참고로 print()는 값을 출력하는 명령어입니다.
지금까지 print() 없이 줄곧 결과를 확인해왔으나,
2줄 이상의 코드 결과를 확인하려면 print()를 사용해야 합니다.
print([1,2,3][1]) print([1,2,3,4,5][2:4])
2 [3, 4]
첫번째 코드는 [1,2,3]에서 1번째 값을 가져오는 코드이며(인덱싱),
두번째 코드는 [1,2,3,4,5]에서 2~4번째를 가져오는
코드였습니다(슬라이싱).
하지만 뭔가 이상한 점을 느끼셨을 겁니다.
[1,2,3]의 첫번째는 1인데 왜 2가 나왔고,
[1,2,3,4,5]의 두번째 부터 4번째까지 값은 2,3,4 일텐데 2가 빠졌습니다.
여기서 인덱싱 / 슬라이싱에 대한 룰을 알아야 합니다.
파이썬에서 데이터 묶음의 첫번째 값의 번호는 0번 부터 책정됩니다.
그렇기에 위의 코드에서 1번째는, 1이 아닌 2가 되는 것입니다.
그럼 이 룰을 기반으로 두번째 코드를 보도록 합시다.
일단 2번의 값부터 가져온다고 했으니 3을 먼저 가져오는 건 맞습니다.
하지만 4번의 값은 5인데, 이상하게도 [3,4,5]가 아닌 [3,4]를 가져왔습니다.
여기에 두번째 규칙이 있습니다.
파이썬에서 슬라이싱을 진행할 때, 앞에 있는 값은
'그 값(번호) 이상'이라는 의미로 적용되며,
뒤에 있는 값은 '그 값(번호) 미만'이라는 의미로 적용됩니다.
위의 코드에 의하면
2번째 <= [n...] < 4번째
이런 식으로 적용되는 셈이죠.
이 룰은 비단 파이썬 뿐만이 아닌,
다른 프로그래밍 언어에서도 통용되는 룰 이므로
확실히 기억하시면 도움이 될것입니다.
아래의 코드를 쳐보면서 슬라이싱을 다양하게 진행해봅시다.
참고로
한쪽의 값이 없는 건 그 이상 / 그 미만의 값을 모조리 가져온다는 의미입니다.
결과를 보시면 이해할 수 있을 겁니다.
a = [1,2,3,4,5,6,7,8,9,10] print(a[8:10]) print(a[:5]) print(a[4:])
[9,10] [1,2,3,4,5] [5,6,7,8,9,10]
리스트의 개념과, 인덱싱 및 슬라이싱에 대해 알아보았습니다.
다음 포스트에선 리스트의 값을 추가하거나 제거하는 명령어에 대해
알아보겠습니다.
댓글
댓글 쓰기