딕셔너리 a_dictionary = { }
: 키(key), 밸류(value) 쌍으로 자료를 담는 것.
ex) 이름은 티라노, 나이는 20살, 전번은 010-0101-0101
name이 먼저다 age가 먼저다 이런 순서개념이 없음.
a_dict = {'name':'Trex', 'age':21}
print(a_dict['name'])
# Trex
a_dict 라는 변수이름은 아무거나 상관없다.
{중괄호}를 사용해서 자료를 key:value 쌍으로 사전처럼 담아준다.
dictionary 뒤에 [ 'key' ] 를 붙여 해당 키의 value 를 반환할 수 있다.
a_dict = {'name':'Trex', 'age':21}
print(a_dict[0])
# KeyError: 0
딕셔너리 요소에는 순서가 없기 때문에, 리스트와 달리 인덱싱을 못알아먹는다.
현재 딕셔너리에 0이라는 key가 없어서 KeyError가 발생했다.
a_dict = {'name':'Trex','age':21,'friend':['Spino','Allo']}
print( a_dict['friend'][0] )
# Spino
딕셔너리 안에 리스트를 넣을 수도 있다.
딕셔너리에서 ['friend'] 로 리스트 ['Spino', 'Allo'] 를 반환하고, 리스트에서 [0] 으로 Spino 반환.
a_dictionary["key"] = value
: 딕셔너리 요소 업데이트 & 추가.
딕셔너리에 있는 값을 다른 값으로 변경하거나, 새로운 값을 추가할 수 있다.
person = {"name":"Trex", "age":21}
person["age"] = 2
print(person)
# {'name':'Trex', 'age':2}
Trex 나이가 2살인데 21로 잘못적었을 경우, 딕셔너리["key"] = value 로 수정해준다.
person = {"name":"Trex", "age":2}
person["name"] = "Spino"
print(person)
# {'name':'Spino', 'age':2}
Trex가 Spino로 개명을 했을경우, 마찬가지로 수정할 수 있다. 문자열 value는 따옴표로 감싸주는거 까먹지 말기.
person = {"name":"Spino", "age":2}
person["height"] = 1590
print(person)
# {'name':'Spino', 'age':2, 'height':1590}
딕셔너리에 없던 key를 같은방식으로 넣어주면, 요소 추가도 할 수 있다.
in a_dictionary
not in a_dictionary
:요소확인하기.
딕셔너리 안에 내가 궁금해하는 요소가 있는지 없는지 확인해볼 수 있다.
person = {"name":"Spino", "age":2, "height":1590}
print("name" in person) # True
print("age" not in person) # False
print("phone" in person) # False
리스트와 딕셔너리의 조합
딕셔너리는 리스트랑 조합해서 자료를 정리하는 데 많이 사용된다.
people = [{"name":"Spino","age":2}, {"name":"Trex","age":21}]
print(people[0]['age']) # 2
print(people[1]['name']) # Trex
리스트 안에 요소 하나하나가 딕셔너리로 들어가있는 모습.
전형적으로 많이 쓰이는 형태이다.
리스트에서는 [순번], 딕셔너리에서는 ['key'] 로 내가 원하는 value를 반환할 수 있다.
people = [{"name":"Spino","age":2}, {"name":"Trex","age":21}]
person = {"name":"Allo","age":17}
people.append(person)
print(people)
# [{'name':'Spino','age':2}, {'name':'Trex','age':21}, {'name':'Allo','age':17}]
새로운 요소(Allo/17세)에 대한 딕셔너리 변수 선언을 해준 후에
리스트에서 배웠던 .append( )를 이용해서 요소 추가하기!
'python' 카테고리의 다른 글
[Python 기초] 함수 def (2) | 2024.07.03 |
---|---|
[Python 기초] 조건문 if (0) | 2024.07.03 |
[Python 기초] 리스트 list (1) | 2024.07.02 |
[Python 기초] 인덱싱, 슬라이싱 (0) | 2024.07.02 |
[Python 기초] 문자열 나누기 .split (0) | 2024.07.02 |