📌 리스트
[ 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로 변환됨 ← 빈 문자열이라는 접근 가능한 요소가 존재하기 때문