
Python 주요 자료구조
- List
- Dictionary
- Set
- Tuple
List
- 타 프로그래밍 언어에서 Array로 불리는 배열 구조
- 순차적으로 데이터를 저장해서 사용하는 자료구조
- 자바스크립트처럼 리스트 내 요소들의 데이터 타입은 통일될 필요 x
- [] 대괄호 사용
- 메서드
- subway = [20, 10, 30], school = ["민사고", "경기고"]
- List 끝에 요소 추가
- subway.append(50) # subway = [20, 10, 30, 50]
- List 끝에 요소 제거
- subway.pop() # subway = [20, 10]
- List 특정 index에 요소 추가
- subway.insert(15, 1) # subway = [20, 15, 10, 30]
- List 내 해당 요소 개수
- subway.count(10) # return 1
- List 오름차순 정렬
- subway.sort() # subway = [10, 20, 30]
- List 내림차순 정렬
- subway.sort(reverse=True) # subway = [30, 20, 10]
- List 모든 요소 제거
- subway.clear() # subway = []
Dictionary
- key-value 쌍의 정렬되지 않은 집합체
- 마치 가게 이름과 전화번호로 이뤄진 전화번호부 같은 구조
- key 값으로 문자열도 가능
- {} 중괄호 사용
- 사용 방식
- cabinet = {3:'유재석', 100:'김태호'}
- 요소 접근
- cabinet[3] # return '유재석'
- cabinet.get(3) # return '유재석'
- cabinet.get(5) # return None
- 요소 잘못 접근시 에러
- cabinet[5] # return Error
- 요소 추가
- cabinet[5] = '김종국' # cabinet = {3:'유재석', 100:'김태호', 5:'김종국'}
- 요소 value 값 수정
- cabinet[3] = '김종국' # cabinet = {3:'김종국', 100:'김태호'}
- 요소 전체 key 값
- cabinet.keys() # return dict_keys([3, 100])
- 요소 전체 value 값
- cabinet.values() # return dict_values(['유재석', '김태호'])
- 요소 전체 key-value 쌍
- cabinet.items() # return dict_items([3, '유재석'], [100, '김태호'])
Set
- List와 비슷하지만 요소 중복 및 순서 x
- {} 중괄호 사용
- 사용 방식
- my_set = {1, 2, 3, 3, 3}, Java = {'유재석', '김태호', '양세형'}, Python = {'유재석', '박명수'}
- 자동 중복 요소 제거
- print(my_set) # return {1, 2, 3}
- 교집합
- print(Java & Python) # return {'유재석'}
- print(Java.intersection(Python)) # return {'유재석'}
- 합집합
- print(Java | Python) # return {'김태호', '박명수', '유재석', '양세형'}
- print(Java.union(Python)) # return {'김태호', '박명수', '유재석', '양세형'}
- 차집합
- print(Java - Python) # return {'김태호', '양세형'}
- print(Java.difference(Python)) # return {'김태호', '양세형'}
- 요소 삽입
- my_set.add(4) # my_set = {1, 2, 3, 4}
- my_set.remove(2) # my_set = {1, 3}
Tuple
- List와 비슷하지만 추가, 변경 불가능하며 속도가 빠름
- 변경되지 않는 목록에 사용
- () 소괄호 사용
- 사용 방식
- menu = ('치킨', '피자'), name = '김종국', age = 30, hobby = '코딩'
- menu[0] # return '치킨'
- (name, age, hobby) # ('김종국', 30, '코딩')