여러 개의 데이터가 묶여 있는 자료형을 컨테이너 자료형이라고 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.
- List : 변경 가능
- Tuple: 변경 불가능
- Dic: Key, Value로 구성
- Set: 중복된 데이터가 허용되지 않음
List
배열과 같이 여러 개의 데이터를 나열한 자료구조
사용방법:
- [ ]를 이용해서 선언하고, 데이터 구분은 ','을 이용한다.
규칙:
- 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
- 리스트에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
인덱스 (아이템에 자동으로 부여되는 번호표)
- 리스트 아이템은 인덱스를 이용해서 조회 가능하다.
출력결과:
편리한 함수 :
리스트 값 참조 방법:
- for문 사용
num = [1, 2, 3, 4, 5]
for i in range(len(num)):
print(num[i])
1
2
3
4
5
- while문 사용
num = [1, 2, 3, 4 , 5]
n = 0
while(n < len(num)):
print(num[n])
n += 1
1
2
3
4
5
List 관련 함수:
Enumerate()
- enumerate()함수를 이용하면 아이템을 열거할 수 있다.
append()
insert()
- 특정 위치(인덱스)에 아이템을 추가할 수 있다.
pop()
- 마지막 인덱스에 해당하는 아이템을 삭제할 수 있다.
remove()
- 인덱스로 아이템 삭제가 아닌, 해당 아이템이름으로 삭제할 수 있다.
extend()
sort()
reverse()
count()
- 리스트안에 특정 아이템이 몇개 있는지 알 수 있다.
튜플(Tuple)
리스트와 비슷하지만 아이템 변경이 불가능하다.
사용방법:
- '( )'을 이용해서 선언하고, 데이터 구분은 ' , '을 이용한다.
- 리스트와 마찬가지로 아이템에 자동으로 부여되는 번호표가 있기 때문에, 인덱스를 활용해서 조회할 수 있다.
규칙:
- 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있다.
- 튜플에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있다.
편리한 함수 :
- len() : 튜플에 저장된 아이템 개수를 반환한다.
- '+' : 2개 이상의 튜플을 결합할 수 있다.
- slice(): [n:m]슬라이싱 방법과 유사하다.
List vs. Tuple
- 튜플은 리스트와 달리 아이템 추가, 변경, 삭제가 불가하다.
- 튜플은 선언시 괄호 생략이 가능하다.
- 리스트는 선언시 대괄호를 사용해야 한다.
- 리스트와 튜플은 자료형 변환이 가능하다.
- 만약 튜플을 정렬하고 싶으면, List로 변환 후 sort()함수를 이용하여 정렬을 하고, 그 후에 다시 tuple로 변경해주면 된다.
딕셔너리(Dictionary)
키(key)와 값(value)를 이용해서 자료를 관리한다.
사용법:
- '{ }' 중괄호를 이용해서 선언하고 '키 : 값'의 형태로 아이템을 정의한다
규칙:
- key와 value에는 숫자, 문자(열), 논리형 뿐만 아니라컨테이너 자료형도 올수 있다.
- 단, key에 immutable 값은 올 수 있지만, mutable 값은 올 수 없다.
- 딕셔너리 key를 이용해서 value를 조회할 수 있다.
편리한 함수:
- get(): key 값을 입력하여 value를 조회할 수 있다.
- 딕셔너리이름['추가할 키'] = '추가할 키에 해당한 value' 식으로 값을 추가/수정 할 수 있다.
- keys() : 키 값들을 출력할 수 있다.
- values(): 밸류 값들을 출력할 수 있다.
- del key : 딕셔너리의 key를 삭제할 수 있다.
- pop(key) : 딕셔너리의 해당 key 값을 삭제할 수 있다.
- len() : 딕셔너리의 총 길이를 반환해준다.