딕셔너리 추가(dict)

gyeorrr·2023년 7월 1일
0

지금까지 다뤘던 형식은 기본형식인 태그형식이었다
하나의 key 하나의 value 하나의 value만 가지고있었으나, 오늘은
하나의 key 여러개의 value로써 여러가지 형식을 써볼까한다

dict형식

dict1 = {
	"홍길동":{
    '나이':30,
    '고향':"부산",
    '취미':"봉술"
    },
    "짱구":{
    '나이':5,
    '고향':"화성",
    '취미':"엉덩이흔들기"
    },
    "흰둥이":{
    '나이':3,
    '고향':"강아지성",
    '취미':"솜사탕구르기"
    }
}

이렇게 mainkey:{key:value} 형식이 있다면 mainkey로 value를 불러올 수 있다

mainkey로 value만 불러오기

for v in dict1.values():
	print(v) # 딕셔너리 형태 그대로 출력됨

# value값만 불러오기
for v in dict1.values():
	for v2 in v.values():
>>>
30
부산
봉술
5
화성
엉덩이흔들기
3
강아지성
솜사탕구르기    

이처럼 반복문의 성질을 이용하여 value값의 value값만을 불러내보았다
반대로 key값만 불러오는것도 가능하다

key값만 불러오기

print(dict1.keys())
>>> dict_keys(['홍길동', '짱구', '흰둥이'])
print(print(list(dict1.keys())[1])
>>>짱구

깔끔하게 출력해보기

for k,v in dict1.items():
    for k1,v2 in v.items():
        print(k,k1,v2)
>>>
홍길동 나이 30
홍길동 고향 부산
홍길동 취미 봉술
짱구 나이 5
짱구 고향 화성
짱구 취미 엉덩이흔들기
흰둥이 나이 3
흰둥이 고향 강아지성
흰둥이 취미 솜사탕구르기

이게 뭐라고 나는 고민을 엄청 했었었다 설명을 하자면
for k,v in dict1.items(): dict1의 키값,밸류값 나눠보기
for k1,v2 in v.items(): v의값이 key가 되고 그것을 value 두가지로 떼어내기
그래서 k1은 mainkey,key,value 중 key를 할당
v2는 value값을 할당하게 됨

dict의 배열

dict의 성질은 list와 비슷하다고 생각하면된다 다만 인덱싱번호가 아닌 key 값을 직접 적는다는 점이 다르달까? 예를들어

dict1 = {
	"홍길동":{
    '나이':30,
    '고향':"부산",
    '취미':"봉술"
    },
    "짱구":{
    '나이':5,
    '고향':"화성",
    '취미':"엉덩이흔들기"
    },
    "흰둥이":{
    '나이':3,
    '고향':"강아지성",
    '취미':"솜사탕구르기",
    "친구":{
        "개":"덕구",
        "고양이":"녜옹"
    }
    }
}

이런형식에서 흰둥이를 봐주기 바란다 친구라는 key 값안에 또 분류가 나뉜다
덕구의 값만 출력하고싶다면 리스트 인덱싱처럼 적으면된다

덕구 출력해보기

print(dict1["흰둥이"]["친구"]['개'])
>>>덕구

다음은 dict를 리스트형식 그리고 엑셀에서 파일을 불러와서 dict로 바꾼뒤 json 형식으로 저장하는 법을 써보겠다

0개의 댓글