파이썬에서는 여러가지 자료구조를 적용해서 사용되고 있습니다. 예를들면 리스트, 튜플, 딕셔너리, Set(집합) 등이 있습니다. 오늘은 파이썬에서의 자료구조에 대해서 알아보기로 하겠습니다.

리스트 (List)
1) 값을 순서대로 모아서 관리하는 구조
2) 특징
- 원소, 요소(Element), 항목(Item) : 리스트 안의 하나하나의 값.
- 리스트의 원소 개수 조회 : 내장함수 len(리스트) 사용가능.
- 원소들은 index를 가지며 index로 관리(조회, 변경) 가능하다.
- 리스트의 index는 문자열의 index와 동작이 같다.
- 다른 타입의 값들을 모을 수 있다.
- 리스트의 원소들은 다른 값으로 바꿀 수 있다.
3) 리스트 만들기
- [값, 값, 값, .... ] 값들은 , 로 구분해서 넣는다.
- 값들의 타입이 같지 않아도 된다.
- 값들의 index는 0 부터 시작한다.
4) 리스트 indexing, slicing
- 문자열과 마찬가지로 index를 이용해 값을 조회하고 슬라이싱 한다.
5) 리스트 + 리스트 하면 두 리스트를 합친다.
6) 리스트 * n 리스트 원소를 n번 반복한 리스트를 반환한다.
ex) ex_list = [ 0,1,2,3,4,5,6,7,8,9,10,11,12 ]
ex_list[0] => 0번 index 원소를 조회한다. 값은 ' 0 ' 이다.
ex_list[1 : 10] => 1~9 index 원소를 조회한다. 값은 [1,2,3,4,5,6,7,8,9] 된다.
* 리스트 주요 메소드
메소드 | 설명 | 비고 |
append(값) | 값을 마지막 원소로 추가 | ex_list.append() |
extend(리스트) | 인수로 받은 리스트의 원소들을 추가 (+연산효과) | ex_list.extend([1,2,3]) ex_list + [1,2,3] 과 동일함. |
sort([reverse = False]) | 리스트 내 원소를 오름차순 정렬 | 리스트내 원소들의 타입이 같아야 한다. |
insert(index, 값) | 값을 index에 삽입한다. | |
index(값) | 값의 index 번호를 반환한다. | |
remove(값) | 리스트에서 값과 일치하는 원소를 삭제한다. | 일치하는 것 중 첫번째 원소만 삭제한다. |
pop([index]) | index의 값을 삭제하면서 반환한다. | index생략시 마지막 원소 반환 삭제한다. |
count(값) | 매개변수에 전달한 값의 개수를 반환한다. | |
clear() | 모든 원소들을 한번에 제거한다. |
튜플 (Tuple)
1) 튜플은 리스트와 같이 순서대로 원소들을 저장하는 자료 구조이다.
2) 리스트와 다른 점은 원소를 변경할 수 없다.
3) 튜플 만들기
- (값, 값, 값)
- ( ) 생략 가능
- 값, 값, 값
- 원소가 1개인 튜플을 생성할 때는 원소 뒤에 , 를 붙인다.
4) 리스트 튜플로 변환 : tuple (리스트) 함수를 이용한다.
5) 주요 메소드
- 튜플은 값을 변경하는 메소드는 없다.
- index(값) : 값과 동일한 첫번째 원소가 몇번째 index 에 있는지 반환한다.
- count(값) : 튜플 안에 매개변수로 전달한 값이 몇개 있는지 반환한다.
딕셔너리, Dictionary
1) 딕셔너리는 값을 키(key) - 값(value) 쌍의 형태로 저장하는 자료 구조이다.
2) 리스트나 튜플의 index의 역할을 하는 key를 직접 지정한다.
3) 딕셔너리 만들기
- { key1 : value1, key2 : value2, key3 : value3 }
- key는 불변의 값들만 사용 가능하다. ( 숫자, 문자열, 튜플 )
- dict로 딕셔너리 만들기 : dict 에서 키 = 값 형식으로 딕셔너리를 만들수 있다.
딕셔너리 = dict (key1 = value1, key2 = value2)
딕셔너리 = dict ( [ ( key1, value1 ), ( key2, value2 ) ] )
딕셔너리 = dict ( { key1 : value1, key2 : value2 } )
4) 딕셔너리의 원소 조회 및 변경
ex) fruit_ex = { '사과' : 20, '귤' : 30, '참외' : 40 }
fruit_ex [ '사과' ] => 결과값은 20 이다.
fruit_ex [ '수박' ] = 50 # 수박은 없었던 key 이므로 추가 된다.
fruit_ex [ '사과' ] = 15 # 사과는 원래 있는 key 이므로 값이 변경된다.
* 딕셔너리 메소드
메소드 | 설명 |
pop (key) | key와 연결된 값을 반환하면서 삭제한다. key가 없으면 key error 가 발생한다. |
clear () | 모든 원소 삭제 |
del dict [ key ] | 특정 key 의 값을 삭제 |
get (key, 기본값) | key 와 연결된 값을 반환한다. 단, 찾는 key의 값이 없을 경우 기본값을 반환한다. |
items () | key, value 쌍을 튜플로 묶어 리턴 |
keys () | key 값들만 모아서 리턴 |
values () | value 값들만 모아서 리턴 |
집합 (Set)
1) Set은 반복되는 값을 허용하지 않고 순서를 신경 쓰지 않는다.
2) Set 만들기
- { 값, 값, 값 }
- set() 를 이용해 만들기 : set() 에 인수로 다른 자료 구조 객체를 넣어 만든다.
- 중복되는 값은 하나만 넣어 만든다.
- 딕셔너리는 key들을 모아 set 으로 만든다.
3) 주요 메소드
- add(값) : 집합에 요소 추가
- update(자료구조) : 한번에 여러 개의 요소를 추가
- pop() : 값을 하나씩 반환하면서 제거한다.
- remove(값) : 값을 찾아서 삭제한다. 값이 set 내에 없으면 keyError 발생한다.
4) 집합 연산
- 집합 | 집합 : 합집합
- 집합 & 집합 : 교집합
- 집합 - 집합 : 차집합
'자기개발' 카테고리의 다른 글
[도서 리뷰] Start with Why (나는 왜? 이 일을 하는가?) (2) | 2022.09.04 |
---|---|
Python (파이썬) 독학하기 _ #4. 제어구조(Control Structure) (4) | 2022.09.04 |
Python (파이썬) 독학하기 _ #2. 변수(Variable) 와 Data Type (6) | 2022.08.30 |
Python (파이썬) 독학하기 _ #1. 소개 및 문법 기초 (6) | 2022.08.27 |
[도서 리뷰] 성공 원칙 (Principles for Success) - Ray Dalio (4) | 2022.08.06 |
댓글