TIL 17 | python, 딕셔너리 사용하기

ryan·2020년 8월 1일
0

Python

목록 보기
6/18

딕셔너리 사용하기

딕셔너리는 값마다 이름을 붙여서 저장하는 방식. 즉, 사전(dictionary)에서 단어를 찾듯이 값을 가져올 수 있다고 하여 딕셔너리라고 부른다.

비교하기
ryan = [100, 30, 100, 5.5]

ryan = {'health': 100, 'mana': 30, 'melee': 100, 'armor': 18.72}

딕셔너리 만들기

  • 딕셔너리 = {키1: 값1, 키2: 값2}
ryanInfo = {'name': 'ryan', 'location': 'Jeju island', 'task': 'studying python'}
            
print(ryanInfo)
{'name': 'ryan', 'location': 'Jeju island', 'task': 'studying python'}

딕셔너리를 만들 때, 키 이름이 중복되면 가장 뒤에 있는 값만 사용하고, 중복되는 키는 저장되지 않는다.

딕셔너리 키의 자료형

딕셔너리의 키는 문자열뿐만 아니라 정수, 실수, 불도 사용할 수 있고 자료형을 섞으서 사용해도 된다. 그리고 값에는 리스트, 딕셔너리 등을 포함하여 모든 자료형을 사용할 수 있다.

x= {'ten': 10, True: 1, 4.1: [4.1, 4.1]}
x
{'ten': 10, True: 1, 4.1: [4.1, 4.1]}

키에는 리스트와 딕셔너리를 사용할 수 없다

x = {[4.1, 4.1]: 4.1}
TypeError: unhashable type: 'list'

빈 딕셔너리 만들기

  • 딕셔너리 = {}
  • 딕셔너리 = dict()

dict로 딕셔너리 만들기

dict은 아래와 같이 키와 값을 연결하거나, 리스트, 튜플, 딕셔너리로 딕셔너리를 만들 때 사용한다.

  • 딕셔너리 = dict(키1=값1, 키2=값2)
  • 딕셔너리 = dict(zip([키1, 키2], [값1, 값2]))
  • 딕셔너리 = dict([(키1, 값1), (키2, 값2)])
  • 딕셔너리 = dict({키1: 값1, 키2: 값2})

1.dict(키1=값1, 키2=값2) # 키에 ' '(작은따옴표)나 " "(큰따옴표)를 사용하지 않아야 한다.

ryan1 = dict(hp=100, mp=100, sp=100, armor=10)
ryan1
{'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10}

2.dict(zip[키1, 키2], [값1, 값2]) # zip 함수 사용

ryan2 = dict(zip(['hp', 'mp', 'sp', 'armor'], [100, 100, 100, 10]))
ryan2
{'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10}
  1. dict([(키1, 값1), (키2, 값2)]) # 리스트 안에 (키, 값) 형식의 튜플을 나열하는 방법
ryan3 = dict([('hp', 100), ('mp', 100), ('sp', 100), ('armor', 10)])
ryan3
{'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10}

4.dict({키1: 값1, 키2: 값2}) # dict 안에서 중괄호로 딕셔너리를 생성하는 방법

ryan4 = dict({'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10})
ryan4
{'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10}

딕셔너리의 키에 접근하고 값 할당하는 방법

  • 딕셔너리[키]
ryan = {'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10}

ryan['hp']
100

딕셔너리의 키에 값 할당하기

딕셔너리[키] = 값

ryan = {'hp': 100, 'mp': 100, 'sp': 100, 'armor': 10}

ryan['hp'] = 1000		# 키 'hp'의 값을 1000으로 변경
ryan['mp'] = 500		# 키 'mp'의 값을 500으로 변경

ryan
{'hp': 1000, 'mp': 500, 'sp': 100, 'armor': 10}

딕셔너리는 없는 키에 값을 할당하면 해당 키가 추가되고 값이 할당된다.

ryan['lawful'] = 32000

ryan
{'hp': 1000, 'mp': 500, 'sp': 100, 'armor': 10, 'lawful': 32000}

딕셔너리는 없는 키에서 값을 가져오라고 하면 에러가 발생한다.

딕셔너리에 키가 있는지 확인하기

  • 키 in 딕셔너리
ryan = {'hp': 1000, 'mp': 500, 'sp': 100, 'armor': 10, 'lawful': 32000}

'hp' in ryan
True

'speed' in ryan
False
  • 키 not in 딕셔너리 # 특정 키가 없는지 확인
'run_speed' not in ryan
True

'hp' not in ryan
False

딕셔너리의 키 개수 구하기

len(딕셔너리) # 키와 값은 1:1 관계이므로 키의 개수는 곧 값의 개수이다.

ryan = {'hp': 1000, 'mp': 500, 'sp': 100, 'armor': 10, 'lawful': 32000}

len(ryan)
5

len({'hp': 1000, 'mp': 500, 'sp': 100, 'armor': 10, 'lawful': 32000}
)
5

딕셔너리가 리스트, 튜플과 다른 가장 큰 차이점은 특정 주제에 대해 연관된 값을 저장할 때 사용한다는 점이다.

profile
👨🏻‍💻☕️ 🎹🎵 🐰🎶 🛫📷

0개의 댓글