갬미의 성장일기
Day13 - Python 주요 자료구조 본문
오늘 배운 내용
- 자료구조 (List, Tuple, Dictionary, Set)
List
대괄호로 데이터 타입 지정함
1차원 배열 - 1층 복도식 아파트(수학 = 행)
2차원 배열 - n층 복도식 아파트(수학 = 행, 열)
3차원 배열 - n층 복도식 아파트 단지 (수학 = 행, 열, 면)
4차원 배열 - n층 복도식 아파트 단지를 구성한 신도시 (수학 = 행, 열, 면, 공간)
.
.
.
계속 차원을 쌓을 수 있지만 실무에서는 최대 3차원까지, 보통은 2차원까지만 사용한다
List Slicing, List comprehention, 값 수정, 추가 ,삭제에 대해 배웠다
data = [1,3,5,2,4,52,4] # 빈 리스트 선언
data1 = data.append(2) # 값 추가 (맨끝에)
resultData1 = data1[5] # 52 (0부터 센다)
data1[5] = 123897 # 인덱스 위치의 값 수정
data2 = list(range(101, 111, 2)) # range이용하여 리스트 생성
listData1 = [i for i in range(101, 111, 2)] # List Comprehension
cnt = data1.count(4) # 4 개수 세기
# 반복문 돌기
for data in listData1:
data2.append(data)
# 리스트의 특정 데이터를 삭제하는 방법 : del 리스트명[몇번째 요소]
del data2[2]
data2.clear() # 모든 데이터 삭제
# List Slicing
listData2 = listData1[2:5] # index번호상으로 2~4까지
Tuple
리스트와 아주 비슷하지만 리스트와 비교하여
요소 추가, 수정, 삭제가 불가능하다는 특징이 있다.
# 튜플 (Tuple)
# list = [] tuple = ()
tupleData1 = (135,3463, 1438)
tupleData2 = (19999) # 정수형 데이터
tupleData3 = (19999, ) # 튜플 데이터
# 값에 접근하고 슬라이싱 하는것 또한 리스트와 동일함
tupleData4 = (234,21,42,46,34)
r1 = tupleData4[0]
r3 = tupleData4[-1] # 마지막 값
r4 = tupleData4[2:4]
r5 = tupleData4[2:]
r6 = tupleData4[:3]
# 합치기 (병합)
tupleData5 = tupleData4 + tupleData1 # 병합
tupleData6 = tupleData4 * 3 # 튜플 데이터 반복
# 값에 변수를 할당할 수 있다
tupleData7 = ('홍길동', 20)
# 개수를 맞춰주면 값을 변수에 하나씩 할당 가능
name, age = tupleData7
tupleData6 = tuple(changeData) # 데이터타입 변환
Dictionary
key: value로 이루어진 자료구조
key만 불러오기, value만 불러오기, 모두 불러오기 다 가능
list, tuple로 이루어진 데이터 dict로 변환 가능 (둘씩 쌍으로 있어야 함)
value 가 list형식이라면, 값을 덧붙이기 가능
# dict = {}
dicData1 = { "과일": '바나나', "수확일": 20220119 }
# 값을 가져올 때에는 키 값을 이용
resultData1 = dicData1["과일"] # 읽기
dicData1["과일"] = "귤" # 수정
f = [('바나나', 20220119), ('귤', 20220101), ('딸기', 20211230)]
fruit = dict(f) # List와 Tuple로 이루어진 데이터를 Dic로 변경
# 삭제 del
del dicData2['귤'] # 삭제
fruitNames = fruit.keys() # key값만 가져오기
fruitDays = fruit.values() # value만
fruititems = fruit.items() # key, value
Set
중복을 허용하지 않는 자료구조
자료의 중복되는 값을 모두 삭제하고, 순서가 없다 (따라서 인덱스가 없음)
순서가 없어 어떤 값이 어디 위치에 있는지 정해져 있지 않다 -> index로 수정, 삭제, 조회 불가능
# Set : 중괄호를 사용
data = {} # dict
data = set() # set
s1 = {1,2,3547,7,23,745,658,1, 54,7, 23, 745} # 중복 제거 후 새로운 데이터를 넣기
# 추가(여러개 추가), 삭제, 모두 삭제
s2 = {1,2,3547,7,23,745,658}
s2.add(56) #추가 - 한개
s2.update({7,8,9,10}) # 추가 - 동시에 여러개
s2.remove(1) # 삭제 - 한개
s2.remove(23)
s2.clear() # 모두 삭제
# 합, 교, 차 집합
r1 = s1 & s2 # 교집합
r2 = s1 | s2 # 합집합
r3 = s1 - s2 # 차집합
반복문 디버깅하기
for 문 아래에서 중단점 찍고,
적중횟수 => n번째 돌 때 멈춰라!
식 => 식이 True 일때 멈춰라!
오늘의 회고
- 디버깅의 기초 of 기초를 다 사용할 수 있게 되었다고 한다 (🙌 지금도 너무 유용한데 더 유용해질일만 남았다니,, 🙌🙌)
- 오늘은 사실 이미 알고있는 내용이라 마음 편하게 복습하는 마음으로 들었다
- set은 자주 사용하지 않아서 add, update는 오늘 처음 알게 되었다
- 내일은 django에 대해 배운다 기대된다~!
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day16 - Flask | 공공 API 사용하기 (0) | 2022.01.24 |
---|---|
Day15 - VScode 디버깅 구성추가 | 파일 읽고쓰기, 예외처리 (python) (2) | 2022.01.21 |
Day14 - Django (0) | 2022.01.20 |
Day12 - Python OOP (0) | 2022.01.18 |
Day 1~11 - 그동안 뭘 배웠는가?(Python 기초 ,Django) (0) | 2022.01.17 |
Comments