일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 서브쿼리
- streamlit
- data analyst
- 데이터 분석
- If
- 군집화
- 머신러닝
- jd
- SQLD
- 히트맵
- cross join
- SQL
- 크롤링
- pandas
- Python
- da
- 최종 프로젝트
- 프롬프트 엔지니어링
- 태블로
- lambda
- Chat GPT
- 전처리
- 클러스터링
- 팀프로젝트
- 프로젝트
- 데이터분석
- GA4
- 기초통계
- 시각화
- 기초프로젝트
- Today
- Total
세조목
PYTHON 정리(점프투파이썬 - 딕셔너리 자료형)(23.12.31) 본문
- 본 내용들은 PYTHON을 공부하면서 차후 제가 복습하기위해 정리해놓은 것으로 제가 새롭게 알게된 내용들만을 정리하였습니다. 또한 배움이 부족하여 미처 다 파악하지 못한 부분들도 많으니 혹시나 이 포스팅을 보시는 분들께서는 다른 포스팅, 도서, 강의도 함께 참고하시기 바라겠습니다.
딕셔너리는 KEY값과 VALUE값을 한 쌍으로 가지는 자료형이다.
사전이라는 뜻을 가진 딕셔너리라는 이름을 사용하는 이유도
사전이 단어와 뜻 한 쌍으로 이루어진것처럼
딕셔너리도 KEY값과 VALUE값이 한 쌍을 이루고 있기 때문이다.
1. 딕셔너리 생성
딕셔너리는 중괄호를 사용한다.
리스트 | [ ] / 대괄호 |
튜플 | ( ) / 소괄호 |
딕셔너리 | { } / 중괄호 |
이 때 중괄호 안에는 'KEY값 : VALUE값' 을 넣어주면 되고 여러쌍 존재할 경우 쉼표로 구분해준다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd = {"list" : [1, 2, 3]}
asd = {"list" : (1, 2, 3)}
딕셔너리에는 위 예시에서처럼 리스트와 튜플도 넣을 수 있다.
2. 쌍 추가
딕셔너리에 쌍을 추가하기 위해서는 ' 변수[key값] = 'value값' '을 입력해주면 된다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd["height"] = 177
asd
>>> {name : kim, age : 37, gender : male, height : 177}
key값에는 문자열, 숫자 모두 입력할 수 있고,
value값에도 문자열, 숫자, 자료형(리스트, 튜플, 딕셔너리)을 입력할 수 있다.
3. 요소 제거
반대로 요소를 제거할 때는 어떻게 하면 될까?
리스트에서처럼 del함수를 사용하는데
del 변수[key값]을 입력해주면 된다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
del asd["name"]
asd
>>> {'age': 37, 'gender': 'male'}
위 예시의 경우 'name'이라는 key값을 입력해주니 value값인 'kim'도 함께 제거된걸 확인할 수 있다.
4. 인덱싱
리스트와 튜플에서 인덱싱을 할 때는
변수[순서] 를 입력해야했다.
그런데 딕셔너리에서는 변수[키값]을 입력해줘야한다.
딕셔너리에 없는 key값을 입력할 경우 오류 문구가 출력된다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd["name"]
>>> 'kim'
5. 주의사항
● 딕셔너리에서 key는 고유한 값임
이게 무슨 말이냐하면
value값은 다른데 key값을 동일하게 지정해두면 가장 마지막 쌍만 출력된다.
아래와 같이 말이다.
a = {"name" : "Kim", "name" : "Mary"}
a
>>> {"name" : "Mary"}
● 리스트는 key값으로 사용할 수 없음
딕셔너리의 key값으로 쓸 수 있는지 없는지를 판별할때는 'key값의 변함'이 기준이된다.
리스트의 경우 요소들을 얼마든지 수정할 수 있다.
튜플의 경우 요소들을 절대 수정할 수 없다.
그렇기 때문에 딕셔너리의 key값에 리스트는 넣을 수 없고, 튜플은 넣을 수 있는 것이다.
# 리스트 삽입
a = {["name", "fruit"] : "kiwi", "number" : 1}
a
>>> Traceback (most recent call last)
<ipython-input-47-79721f8e7131> in <cell line: 1>()
TypeError: unhashable type: 'list'
# 튜플 삽입
a = {("name", "fruit") : "kiwi", "number" : 1}
a
>>> {('name', 'fruit'): 'kiwi', 'number': 1}
6. 딕셔너리 관련 함수
- keys
- values
- items
- clear
- get
- in
● keys
keys 함수는 딕셔너리에 포함된 모든 key값을 출력해준다.
이 때 단순히 key값만을 출력하는 것이 아니라
dict_keys( ) 안에 key값들이 리스트 형태로 출력된다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd.keys()
>>> dict_keys(["name", "age", "gender"])
만약 for문을 활용해서 key값들을 순서대로 출력하고 싶다면 아래와 같이 코드를 작성해볼 수 있다.
for i in asd.keys():
print(i)
>>> name
>>> age
>>> gender
● values
딕셔너리의 value값들을 모두 출력하는 함수로
dict_values([value값])으로 출력된다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd.values()
>>> dict_values(["kim", 37, "male"])
● items
items함수는 딕셔너리에 있는 모든 key와 value 쌍을 출력하는 함수다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd.items()
>>> dict_items([("name", "kim"), ("age", 37), ("gender", "male")])
이 때 key와 value값은 튜플로 묶이고 각각의 쌍들은 하나의 리스트로 묶인다.
● clear
clear함수는 딕셔너리 안의 모든 요소를 제거하는 함수다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd.clear()
>>> {}
● get
get함수는 특정 key값에 해당하는 value값을 반환한다.
인덱싱과의 차이점이라고한다면
get함수는 딕셔너리에 없는 함수를 가져오려고 할 때 None을 리턴하지만
인덱싱은 오류를 발생시킨다는 점이다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
asd.get("name")
>>> "kim"
print(asd.get("tel"))
>>> None
● in
in함수는 특정 key값이 딕셔너리 안에 있는지를 조사하는 함수다.
asd = {"name" : "kim", "age" : 37, "gender" : "male"}
"name" in asd
>>> True
"number" in asd
>>> False
위 예시를 보면 key값 "name"은 asd라는 딕셔너리에 존재하기 때문에 True를 반환하고
"number"라는 key값은 존재하지 않기 때문에 False를 반환한다.
'데이터 분석 공부 > Python' 카테고리의 다른 글
PYTHON 정리(점프투파이썬 - 불 자료형)(23.12.31) (0) | 2023.12.31 |
---|---|
PYTHON 정리(점프투파이썬 - 집합 자료형)(23.12.31) (1) | 2023.12.31 |
PYTHON 정리(점프투파이썬 - 튜플 자료형)(23.12.31) (1) | 2023.12.31 |
PYTHON 정리(점프투파이썬 - 리스트 자료형)(23.12.31) (1) | 2023.12.31 |
PYTHON 정리(점프투파이썬 - 문자열)(23.12.30) (2) | 2023.12.30 |