Q. 아이유의 신상을 dict로 구현, 출력하기
A.
IU = {"가명":"아이유", "본명":"이지은", "생일":"930516",
"출생":"서울", "포지션":"가수", "학력":"고졸"}
print(IU)
a. Set vs Dictionary
set1 = {1, 2} <--- {중괄호}
set1.add(3) <--- append 대신 add()
set.remove(3) <--- 지울땐 remove()
dict1 = {"key1" : "value1", "key2" : "value2"}
dict1[new_key] = new_value <--- 요소 추가
dict1["key1"] = "value3" <--- 요소 수정
del dict1["key1"] <--- 요소 삭제시 key값 사용
dict2 = {} <--- 비어있는 dict 선언
Properties for set and dict |
---|
1. set |
요소들이 순서대로 저장되지 않음, for 문에서 읽어들일때 무작위로 나옴 |
순서가 없으므로 indexing도 없음. 요소의 순번을 특정하여 읽어내기 불가 |
동일한 값을 가지고 있는 요소가 1개 이상 존재 할 수 없음. 중복 값 저장 불가 |
동일한 값을 저장하려고 하면, 이전요소를 치환(replace) 한다. |
|
2. dict |
index 대신 정해진 key값을 사용해 요소를 읽거나 수정함 |
key값은 중복 불가. 중복된 key값을 추가하면 기존 key값의 요소(value)를 치환함 |
b. List vs Tuple
list1 = [1, "two", True]
list2 = [] <--- 빈 list 생성 가능
print(list1[0]) = 1 <--- index 값으로 해당 위치의 요소를 출력
list1[1] = 2 <--- list의 두번째 값을 수정
print(list1) =[1, 2, True] <--- 수정이 적용된 list
list1.append(4) <--- list의 맨 끝에 ()값을 추가
list1.insert(1, "one") <--- index 값을 설정하여 해당 위치에 값 추가
list1.pop() <--- list의 맨 마지막 데이터 제거
del list1[0] => list1 = ["one", 2, True] <--- index로 요소 제거
list1.remove("one") = [2, True) <--- list 메소드
list1 = list1 + ["five", False]
-> 추가하고자 하는 element가 여러개 일때 + 사용
-> []로 묶어 줄 것
-> 이 경우 새로운 list가 생성되는 것이므로 꼭 저장할 변수를 지정해야함
-> 기존의 list가 수정되는 것은 아님
list3 = list1[1(=start):4(=stop):2(=step)] <--- list1의 2~4번째요소만 카피해 새 list를 생성함 (= list slicing)
-> start 값을 지정하지 않으면 list의 첫 요소부터 시작
-> stop 값을 지정하지 않으면 start 부터 끝까지 선택
-> step 값 만큼 건너뛰어 가져옴(index가 아니기 때문에 1부터 카운트. default = 1)
tuple1 = (1, 2, 3)
* 요소를 읽는 방법과 slicing 방법은 list와 동일 *
Properties for list and tuple |
---|
1. list |
str, 숫자, boolean 등 모든 type의 값과 서로 다른 type의 값들을 저장 가능 |
값들의 순서가 존재(index). index는 0번부터 시작. 이를 통해 원하는 값을 읽을 수 있음 |
index의 마지막은 -1 값을 갖는다 |
다차원 리스트 : list가 다른 list의 요소가 된 것 [1, 2,[3, 4, [5, 6]]] |
- 접근하려는 깊이만큼 브라켓 "[]" 을 추가하여 데이터에 접근할 수 있음 |
|
2. tuple |
한번 선언되면 수정이 불가능 함 |
2~5개 사이으 ㅣ요소들을 저장할때 사용 됨 |
list보다 차지하는 메모리 용량이 작음 |