< 수강분량 : 기초수학(1~7), 파이썬 기초문풀(1~3) >
자료구조란? : 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.
자료구조는 각각의 컨테이너 자료형에 따라서 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)가 있다.
enumerate() : idx, item 열거 (문자열에서 적용 가능)
append() : 아이템 추가하기 (마지막)
insert() : 특정 위치에 아이템 추가하기 (예: insert(3, '강호동))
pop() : 마지막 인덱스 아이템 삭제, idx를 넣으면 특정 아이템 삭제, 할당연산자로 다른 변수에 담으면 삭제한 item 반환 가능
remove() : 특정 아이템 삭제, 1개의 아이템만 가능하니 2개 이상이라면 while문 활용
extend() : 또 다른 리스트를 연결(확장)
* '+' 연산자를 활용한 연결은 새로운 리스트가 생기는 개념
sort() : 오름차순 정렬; sort(reverse=True) : 내림차순 정렬
reverse(): 순서 뒤집기
[n:m:단계] : 리스트/문자열 슬라이싱
slice() : 슬라이싱 (예: [slice(2,4)] = [2:4] )
리스트 곱셈 연산(*) : 아이템 반복
index(item, idx, idx) : 가장 앞쪽에 있는 item의 인덱스 알아 낼 수 있음 (idx 범위 지정 생략 가능)
count() : 특정 아이템의 개수 알아내기
del 키워드 : 특정 아이템 삭제 (예: del students[idx/item/m:n]) , 특정 아이템 삭제시 맨앞 item만 삭제
아이템은 인덱스를 이용해서 조회 가능하며, in, not in 키워드로 존재 유무를 알 수 있다. (문자열에서도 사용 가능)
len() : 튜플 길이 (*len()과 반복문을 이용하면 튜플의 특정 아이템 조회가 가능하다)
'+' 연산자를 활용하여 두 개의 튜플을 결함할 수 있다.
(item,) : 아이템이 1개라면 ','가 있어야 튜플
[n:m] & [slice(,)] 로 슬라이싱 가능
슬라이싱으로 아이템을 바꿀 수 없음. list() 함수를 활용하여 List로 변환하여 수정 후 tuple() 함수를 활용하여 재변환 필요.
튜플정렬 : 리스트로 변경 후 가능. sorted() 함수를 사용하면 정렬 가능하지만, 결과가 새로운 리스트 자료형으로 변환된다.
1) 튜플은 리스트와 달리 아이템 추가, 변경, 삭제가 불가능하다.
2) 튜플은 선언 시 괄호 생략이 가능하다.
3) 리스트와 튜플은 자료형 변환이 가능하다.
딕셔너리는 키를 이용해서 값을 조회한다.
KeyError: 키 값이 없는데 조회할 경우 에러
- get() : 키 값이 없어도 에러 X, 대신 None (예: students.get('SI'))
딕셔너리이름[key] = value : 아이템 추가. 추가하려는 키가 이미 있다면 값이 수정된다.
keys() / values() : 전체 key, value 값 조회
items() : keys() + values(), 리스트 안에 튜플로 저장된 형태
list()로 리스트 변환하면 키 값만 리스트로 변환된다.
del 딕셔너리이름[key] : item 삭제
딕셔너리.pop(key) : item 삭제, 삭제한 item의 value 반환한다.
in, not in 키워드로 존재 유무를 알 수 있다.
len() : 딕셔너리 길이(아이템 개수)를 알 수 있다.
clean() : 모든 아이템을 삭제한다.