code : 준
2일차 본문
이틀차다.. 이제 하루가 지났다고 생각하며 시간이 참 천천히 흐르는 것 같으면서도 금방 지나가는 것 같아 신기하다. 코딩을 지금껏 이렇게 오래 붙잡고 있었던 때가 없었던 내 자신이 조금은 부끄러운 것도 같다. 그래도 하루하루 유익하게 지나가서 만족감이 높은 상태이다. 이상 생존신고 끝
_________________________________________________________________________________________________________________________________________________
오늘은 dictionary, set의 자료형, if 정도의 제어문을 실습 위주로 공부했다.
- dictionary
- 매핑형 타입
- tuple, list등의 시퀀스 형 타입과는 다른 자료형
- key 값으로 value 값을 가져옴
- 해시 자료구조
- 일대일대응
- {key:value, key:value, key:value}
- key를 직접 정의 할 수 있음
- 인덱스가 자동생성되는 시퀀스 형과의 제일 큰 차이
- 값 가져올때 a.keys(), a.values(), a.items()
- a['key'] 의 방법도 있지만 key값이 딕셔너리에 없을때 오류가 나기 때문에 a.get('key')를 이용하면 값없어도 None이라고만 뜸 -> 오류로 나가지 않고 코딩하려면 이용
- 추가 : a['key']=1
- a['key']=1 ; a['key']=2 ; a ->>>>출력 : {'key':2} (즉 key값에 해당하는 value는 일대일 대응으로 마지막 추가한 값만 들어간다, 만약 다양한 값 보여주고 싶으면 list로 하나로 만들어 넣기)
- 매핑형 타입
- set
- 집합
- 순서가 없는 자료형
- 중복이 안됨
- set1&set2 == set1.intersection(set2)
- set1|set2 == set1.union(set2)
- set1-set2 == set1.difference(set2)
- 복사 - 주소가 같으면 값이 같음 , 값이 같다고 주소가 같지 않음
- 얕은 복사 (주소 복사)
- 변수 이름은 다르지만 결국 동일한 주소
- 결국 두 변수는 같은 변수나 다름없음 메모리 값이 같기때문!!
- (공간 효율성 = 메모리 효율성) 높음
- 전체 값을 항상 메모리에 복사하면 그만큼 속도 느려짐, 공간 부족
- 주소를 복사해서 사용하는 얕은 복사를 파이썬은 기본 복사로 차용
- int , float , bool 값 자체가 복사
- 시퀀스 타입은 전부 얕은 복사가 이루어짐
- 깊은 복사 (값 복사)
- 파이썬에서 깊은 복사는 시퀀스 타입의 깊이가 깊어질 때 메모리 주소를 참조하여 원본 훼손 방지
- copy 라는 모듈의 deepcopy메소드를 사용
- 얕은 복사 (주소 복사)
- 제어문
- 조건문, 반복문
- 조건문
- if문 하나만
- if 명제: \명령어
- 조건문
- 조건문, 반복문