갬미의 성장일기

Day13 - Python 주요 자료구조 본문

Cloud/Cloud 공부일기

Day13 - Python 주요 자료구조

갬미 2022. 1. 20. 00:17

오늘 배운 내용

- 자료구조 (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에 대해 배운다 기대된다~!
Comments