def AddWorker(name, exp=0):
workers[name] = exp
workers = {}
AddWorker("신입1")
AddWorker("신입1",2)
AddWorker("신입5",2)
AddWorker("신입5")
for i in workers.items():
print("[이름] %s / [경력] %d년"%(i[0], i[1]))
딕셔너리 관련 입니다.
다음과 같이 A key인 값이 처음에는 1 로 했지만 다음에 A key에 다시 2를 입력한 것이어서
이 시점에는 A key의 value는 2가 됩니다.
dic = {}
dic['A'] = 1 # 딕셔너리 A key = 값 (1)
print(dic['A'])
dic['A'] = 2 # 딕셔너리 A key = 값 (2)
print(dic['A'])
exp=0 은 exp 인수가 주어지지 않으면 exp=0 값이 주어집니다.
def AddWorker(name, exp=0): # exp=0 으로 하면 exp 인수가 없을때는 0 이 지정됨
workers[name] = exp
AddWordkers("신입1")
으로 하면 workers 딕셔너리가 workers['A']는 value가 0이 됩니다. 이때 exp=0 이됩니다.
그 다음
AddWorkders("신입1",2)
하고 하면 이때는 exp 인수가 2가 되어서 딕셔너리 workders['A']의 value는 2가 됩니다.
신입5은 위와 반대로 처음에는 2 였다가 0 이 됩니다.
다음은 각 라인에 딕셔너리를 출력해서 어떻게 되는지 보면 다음과 같습니다.
def AddWorker(name, exp=0): # exp=0 으로 하면 exp 인수가 없을때는 0 이 지정됨
workers[name] = exp
workers = {}
AddWorker("신입1") # '신입1'을 키로 해서 추가. 이때 값이 없으니 exp=0 값으로 사용됨
print(workers) # {'신입1':0}
AddWorker("신입1",2) # '신입1' 키에 값을 2로 함. 기존 키가 있니 값이 변경 굉
print(workers) # {'신입1':2}
AddWorker("신입5",2) # '신입5'가 추가됨. 이때 exp=5 값이 주어 짐
print(workers) # {'신입1':2, '신입5':2}
AddWorker("신입5") # '신입5' 키만 주어짐. 그러면 exp=0 으로 0 값으로 변경됨
print(workers) # {'신입1':2, '신입5':0}
print('='*30) # = 문자를 30개 출력
for i in workers.items(): # items()는 키와 값을 돌려 줌. i는 (키, 값)이 됨.i[0]는 키, i[1]는 값
print("[이름] %s / [경력] %d년"%(i[0], i[1]))
딕셔너리의 items()는 키와 값을 같이 돌려 줍니다.
그래서 i 는 튜플인 (키, 값) 이 됩니다. 튜플은 리스트와 같은데 값이 수정이 되지 않는다고 보시면 되요.
그래서 print()에서 i[0]은 키, i[1]은 값이 됩니다.
그 print문에 제가 위 작동상태를 보기 위하 출력들과 분리하기 위해서 추가한 거예요.
=를 30개쯤 출력하면 될 것 같아서 제가 임의로 지정한 것입니다.
for i in workers.items():
이러게 되어 있으면 items() 함수가 딕셔너리의 키와 값을 i에 대합해 줍니다.
그럼 i는 튜플타입의 (키,값) 구조가 되요.
그때 workers는 {'신입1':2. '신입5':0} 인 상태입니다.
그래서 for문은 2번 반복됩니다.
그래서 처음에는 i는 ('신입1',2) 가 되고
print문서 i[0]는 '신입1', i[1]는 2가 됩니다.
두번째 i는 ('신입5', 0) 가 되고
print문서 i[0]는 '신입5', i[1]는 0이 됩니다.
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : tkinter 마일->킬로미터 변환 (1) | 2023.12.10 |
---|---|
[파이썬] 문제 : 이중 for문의 실행 횟수 (0) | 2023.12.10 |
[파이썬] 문제 : 클래스(Box) 선언 및 __init__(), __str__() 사용 (0) | 2023.12.10 |
[파이썬] 문제 : 학생 점수 튜플과 리스트 만들고 합계,평균 계산 (0) | 2023.12.10 |
[파이썬] 문제 : 딕셔너리의 value를 정렬하기 (0) | 2023.12.08 |
댓글