본문 바로가기
[언어]/Python

[Python] 자료구조 : 리스트, 튜플, 딕셔너리, 집합, bool과 내장 함수

by seom-j 2024. 7. 12.

 

📌 리스트

[ List란? ]

요소들의 묶음으로, []로 묶임

리스트명 = [요소1, 요소2, … ] 

의 코드를 통하여 선언 가능

 

[ List Indexing ]

문자열의 인덱싱과 유사

[시작점 : 끝점(포함 X) : 간격]

 

이때, 다차원 리스트가 가능하며 lst[i][j]과 같은 식으로 접근 가능

 

[ List Editing ]

인덱싱을 통한 접근 후 수정 가능

ex)

x = [1, 2, 3, 4, 5]
x[0] = 0
print(x)

 

[ List Op ]

리스트 + 리스트 : concatinate (같은 자료구조간의 concatinate만 가능)

리스트 * 수 : repeat

 

 

📌 리스트 함수

[ 리스트 길이 추출 ]

len(리스트)

: 리스트 길이 return

 

[ 리스트 요소 삭제 ]

del 요소

: 리스트에서 요소 삭제

 

ex)

del x[0]

 

[ 리스트 요소 추가 ]

리스트.append(요소)

: 리스트에 요소 추가 (인자 형식에 맞추어 추가)

 

리스트.extend(요소)

: 리스트에 요소 추가 (무조건 단일 요소씩 추가)

 

ex)

a = [1, 2, 3]
b = [4, 5]
a.extend(b)
print(a)
# [1, 2, 3, 4, 5]

a = [1, 2, 3]
b = [4, 5]
a.append(b)
print(a)
# [1, 2, 3, [4, 5]]

 

[ 리스트 정렬 ]

리스트.sort()

: 리스트 정렬

이때, 인자로 reverse = False 혹은 reverse = True를 입력하여 오름차순 및 내림차순 선택 가능

 

+) 리스트.reverse() : 현재 순의 역순 정렬

 

[ 리스트 내 요소 추출 ]

리스트.index(요소)

: 리스트 내의 요소 index return

 

[❗] 문자열.find(요소)의 경우 존재하지 않는 요소일 때 -1을 return하지만, 리스트.index(요소)의 경우 존재하지 않는 요소일 때 오류(n is not in list)가 발생함

 

[ 리스트 내 요소의 개수 추출 ]

리스트.count(요소)

: 리스트 내부에 존재하는 요소의 개수 return

 

 

📌 튜플

[ Tuple이란? ]

요소들의 묶음으로, ()로 묶임

이때, 요소 값의 생성, 삭제, 수정 불가능

튜플명 = (요소1, 요소2, … )

의 코드를 통하여 선언 가능

 

[ Tuple Indexing ]

문자열의 인덱싱과 유사

[시작점 : 끝점(포함 X) : 간격]

 

이때, 다차원 튜플이 가능하며 tup[i][j]과 같은 식으로 접근 가능

 

[❗] 요소가 하나인 tuple 생성시 유의

(1) ≠ tuple, == int

(1,) == tuple

 

+) 앞서 배운 상수를 다루는 enum도 튜플로 존재 (생성, 삭제, 수정이 불가능하다는 점 활용)

 

 

📌 딕셔너리

[ Dictionary란? ]

키 / 값의 쌍을 통해 활용할 수 있는 자료형

딕셔너리명 = {
		키:값, 
		…
}

의 코드를 통하여 선언 가능

 

[ Dictionary 특징 ]

Indexing 불가능

→ 순서가 존재하지 않으며 키를 통해 접근

[❗] → 키를 통해 접근하기에 중복 키 불가능

 

앞서 배운 변수, 자료구조들과 함께 다양한 활용이 가능함

 

 

📌 딕셔너리 함수

[ 요소 조회 ]

딕셔너리.get(요소)

: 딕셔너리에서 요소의 key 값을 가지는 value를 return

 

[❗] 딕셔너리[요소]로 접근시 존재하지 않는 key를 조회하면 오류가 발생하지만, 딕셔너리.get(요소)로 접근시 빈 값을 반환함

 

[ key 조회 ]

딕셔너리.keys()

딕셔너리의 key들로 구성된 dict_keys return

ex)

dic = {'name':'pey', 'phone':'01099991111', 'birth':1118}
dic.keys()
# dict_keys(['name', 'phone', 'birth'])

 

[ value 조회 ]

딕셔너리.values()

딕셔너리의 value들로 구성된 dict_values return

ex)

dic = {'name':'pey', 'phone':'01099991111', 'birth':1118}
dic.values()
# dict_values(['pey', '01099991111', 1118])

 

[ key, value 쌍 조회 ]

딕셔너리.items()

딕셔너리의 key, value들로 구성된 dict_items return

ex)

dic = {'name':'pey', 'phone':'01099991111', 'birth':1118}
dic.items()
# dict_items([('name', 'pey'), ('phone', '01099991111'), ('birth', 1118)])

 

[❗] dict_keys, dict_values, dict_items는 list 자료형이 아님에 주의

 

 

📌 집합

[ Set이란? ]

요소들의 묶음으로, {}로 묶임

이때, 중복 요소가 존재하지 않음

집합명 = {요소 1, 요소 2, …}

의 코드를 통하여 선언 가능

 

[ Set Op ]

교집합, 합집합, 차집합의 연산 가능

 

& 혹은 집합1.intersection(집합2)

: 교집합 연산 수행

 

| 혹은 집합1.union(집합2)

: 합집합 연산 수행

 

- 혹은 집합1.difference(집합2)

: 차집합 연산 수행

 

[ 집합의 요소 삭제 및 추가 ]

집합.add(요소)

: 집합에 요소 추가

 

집합.remove(요소)

: 집합에서 요소 삭제

 

 

📌 Bool

[ bool이란? ]

논리값을 저장하는 자료형으로, 참(true)와 거짓(false)가 존재

 

[ bool과 int의 형변환 ]

bool 자료형을 int 자료형으로 변환할 시,

false는 0으로, true는 1로 변환

 

[❗] int 자료형을 bool 자료형으로 변환할 시,

0은 false로, 그 외 모든 값은 true로 변환

 

[ bool과 자료구조의 형변환 ]

문자열, 리스트, 튜플, 딕셔너리, 집합의 자료구조를 bool(자료구조)로 형변환을 해주었을 경우,

요소가 존재하지 않으면 false로, 요소가 존재한다면 true로 변환

 

[❗] 이때, bool(‘’)은 false로 변환되지만 bool((’’)), bool([’’])은 true로 변환됨 ← 빈 문자열이라는 접근 가능한 요소가 존재하기 때문