[ProjectH4C Study] 파이썬 코딩 도장 #5

Jennie Yoon·2021년 1월 31일
0

Study

목록 보기
5/7

딕셔너리 사용하기

• 딕셔너리(dictionary): 값마다 이름을 붙여서 저장하는 방식 사전(dictionary)에서 단어를 찾듯이 값을 가져올 수 있다고 해서 딕셔너리라고 부름.
ex)
lux = {'health'=490, 'mana'=334, 'melee'=550, 'armor'=18.72}
=> 연관된 값끼리 묶어서 저장하는 용도로 딕셔너리라는 자료형 제공
lux = [490, 334, 550, 18.72] -> 값 여러 개를 일렬로 저장하지만 값끼리 연관 관계X, 리스트만 봐서는 각 값이 어떤 능력치인지 쉽게 알기가 힘듬.

  • 딕셔너리 만들기
    딕셔너리 = {키1:값1, 키2:값2}
    키에는 값을 하나만 지정할 수 있다. 이런 특성을 따서 '키-값 쌍(key-value pair)'이라 부른다. (1:1 대응)

  • 키 이름이 중복되면?

>>>lux= {'health':490, 'health:800}
>>>lux['health'] #키가 중복되면 가장 뒤에 있는 값만 사용함
800
>>>lux
{'health':800} #중복되는 키는 저장되지 X
  • 딕셔너리 키의 자료형
    딕셔너리 키는 문자열뿐만 아니라 정수, 실수, bool도 사용할 수 있으며 자료형을 섞어서 사용해도 된다. 그리고 값에는 리스트, 딕셔너리 등을 포함해서 모든 자료형이 가능하다.
    ⁕ 단, 키에는 리스트나 딕셔너리를 사용할 수 X
>>>x= {100:'hundred', False:0, 3.5:[3.5,3.5]}
>>>x
{100:'hundred', False:0, 3.5:[3.5,3.5]}
  • 빈 딕셔너리 만들기
    딕셔너리={ } or 딕셔너리=dict()

  • dict로 딕셔너리 만들기

  1. 딕셔너리 = dict(키1=값1, 키2=값2)
    ex)
>>>lux1= dict(health=490, mana=334, melee=550, armor=18.72)
⁕ 키에 ''(작은 따옴표)나 ""(큰 따옴표)를 사용하지 X 
>>>lux1
{'health':490, 'mana':334, 'melee':550, 'armor':18.72}
  1. 딕셔너리 = dict(zip([키1, 키2], [값1, 값2]))
    ex)
>>>lux2= dict(zip(['health','mana', 'melee', 'armor'], [490, 334, 550, 18.72])) # zip함수로 키 리스트와 값 리스트를 묶음
>>>lux2
{'health':490, 'mana':334, 'melee':550, 'armor':18.72}

키와 값을 리스트 말고 튜플에 저장 후 zip에 넣어도 상관 X

  1. 딕셔너리 = dict([(키1, 값1), (키2, 값2)])
    ex)
>>>lux3= dict([('health',490), ('mana',334), ('melee',550), ('armor', 18.72)])
>>>lux3
{'health':490, 'mana':334, 'melee':550, 'armor':18.72}
  1. 딕셔너리 = dict({키1:값1, 키2:값2})
    ex)
>>>lux4= dict({'health':490, 'mana':334, 'melee':550, 'armor':18.72})
>>>lux4
{'health':490, 'mana':334, 'melee':550, 'armor':18.72}
  • 딕셔너리의 키에 접근
>>>lux= {'health':490, 'mana':334, 'melee':550, 'armor':18.72}
>>>lux['health']
490
>>>lux['armor']
18.72
  • 딕셔너리의 키에 값 할당하기
    딕셔너리[키] = 값
>>>lux= {'health':490, 'mana':334, 'melee':550, 'armor':18.72}
>>>lux['health']= 2037 #키 'health'의 값을 2037로 변경
>>>lux['mana'] = 1184 #키 'mana'의 값을 1184로 변경
>>>lux
{'health':2037, 'mana':1184, 'melee':550, 'armor':18.72}
>>>'health' in lux
True
>>>'attack_speed' in lux
False
+ 딕셔너리에 특정 키가 없는지 확인시 -> 키 not in 딕셔너리

• 해시(hash): 딕셔너리는 해시(hash)기법을 이용해서 데이터를 저장. 보통 딕셔너리와 같은 키-값 형태의 자료형을 해시, 해시 맵, 해시테이블 등으로 부르기도 한다.

  • 딕셔너리의 키 개수 구하기 (키의 개수 = 값의 개수)
    len(딕셔너리)
>>>lux= {'health':490, 'mana':334, 'melee':550, 'armor':18.72}
>>>len(lux)
4
>>>len({'health':490, 'mana':334, 'melee':550, 'armor':18.72})
4

break, continue로 반복문 제어하기

• break: 제어흐름 중단
• continue: 제어흐름 유지, 코드 실행만 건너뜀

  1. break로 반복문 끝내기
i=0
while True:
	print(i)
    	i+=1
        if i==100:
        	break

  1. continue로 코드 실행 건너뛰기
for i in range(100):
	if i%2==0:
    	continue #아래 코드를 실행하지 않고 건너뜀
    print(i)
    
-> i가 짝수이면 continue를 실행하여 print를 건너뛰고, 홀수이면 print로 숫자를 출력한다. 반복문 안에서 continue를 실행하면 continue 아래의 코드는 실행하지 않고 건너뛴 뒤 다음 반복을 시작함.

if 조건문에서 코드를 생략하기

>>>x= 10
>>>if x==10:
...	pass 
...
>>>
#아무 일도 하지 않고 그냥 넘어감. if 다음 줄에 아무 코드도 넣지 않으면 에러가 발생하므로 if 조건문의 형태를 유지하기 위해 pass를 사용. pass는 아무 일도 하지 않는 코드라서 의미가 없을 것 같지만 나중에 작성해야 할 코드를 표시할 때 사용할 수 있다.
ex) if x==10:
		pass #TODO: x가 10일 때 처리가 필요함

0개의 댓글