저번에 Dictionary를 생성하고 삭제하는 간단한 방법에 대해서 공부했다면 오늘은 저번에 이어 딕셔너리의 좀 더 복잡한 사용법에 대해서 공부해 보도록 하겠습니다. 저번에 딕셔너리는 {key: value} 가 맵핑되어 있는 집합이자 딕셔너리의 키 값은 Immtable하고, 값은 Mutable하다고 했습니다. 그런데 여기서 Key가 중복되면 에러를 출력해 줄까요? 불행하게도 그렇지 않습니다. 에러를 출력해 주면 내가 뭘 잘못했는지 알고 수정 할 텐데, 그렇지 않습니다. 그냥 값을 출력해 줍니다. 즉, 다음과 같습니다.
위와 같이 마지막 값만 출력해 줍니다. 이것은 파이썬이 잘못된 언어가 아니라, value가 변할 수 있는 값이기 때문에 마지막 값으로 덮어 씌워지는 것입니다. 딕셔너리 기초에서 봤는데, 딕셔너리는 왜 index로 접근 할 수 없었을까요? index가 존재하지 않고 대신에 key라는 변하지 않는 참조 가능한 값이 있기 때문입니다.
dictionary를 선언하는 방법은 list 처럼 하되, dictionary가 대괄호로 들러쌓여 있으므로 = { } 처럼 선언해 줍니다. 아니면 딕셔너리 Constructor로도 생성이 가능한데 주의 할 점은 dictionary constructor를 사용할 떄는 대괄호가 아닌 소괄호로 둘러 쌓아 줘야 하고, key에 ' '을 사용하면 안 된다는 점입니다. 사용은 다음과 같이 하면 됩니다.
리스트 속에 다음과 같이 [ [key, value] ] 키와 value값이 나란히 있으면, dict() 메서드를 통해 dictionary로 변환이 가능합니다.
딕셔너리에서 키:값 쌍을 여러 개를 만들 고 싶을 경우,
하나의 리스트에 모두다 쓰면 dict 에러가 납니다.
a=[ ['a',1], ['b',1] ] 처럼 나눠써야 에러가 나지 않고 정상적으로 출력이 됩니다. 이러한 점 알아 두시기 바랍니다.
딕셔너리를 print하고 싶을 경우, 보통, print 하는 것처럼 형식 지정자를 사용할 필요 없이 바로 print함수 안에 dictionary이름을 적으면 됩니다. print함수가 아니면 pprint 모듈을 import해서 dictionary를 출력할 수도 있습니다.
오늘은 딕셔너리를 좀 더 자세히 알아 봤습니다만, 충분하지는 않을 것으로 생각됩니다. 저도 충분히 공부했다고 생각되지 않으니까요 ㅎㅎ;;
관련해서 사용하는 것은 pandas와 numpy를 공부할 때 같이 배우도록 하겠습니다.
그럼 오늘은 이만 마치도록 하겠습니다.
'머신러닝 > 기초 문법' 카테고리의 다른 글
넘파이 기초 - 배열 생성(1) (0) | 2019.01.31 |
---|---|
넘파이 기초 - 색인과 슬라이싱 기초(2) (1) | 2019.01.31 |
5. 딕셔너리 기초 - (1) (0) | 2019.01.29 |
4. 리스트와 관련 메서드 (0) | 2019.01.28 |
3. String -(2) : string 함수 (0) | 2019.01.24 |