자료구조 (딕셔너리)

Lee JunBok·2023년 5월 1일

자료구조

목록 보기
3/4
post-thumbnail

딕셔너리(Dictionary)

키(key)와 값(value)를 이용해서 자료를 관리한다.

{}를 이용해서 선언하고, 키:값의 형태로 아이템을 정의한다.
키값은 중복될 수 없으며 변경가능한 값은 들어올 수 없다.

조회

키 값을 이용해서 값을 조회한다.

students = {'s1': '홍길동', 's2': '이영지', 's3': '철수', 's4': '영희'}

print(students['s1']) # 홍길동

get() 함수를 이용해 값을 조회할 수 있다. (key가 없어도 에러가 발생하지 않는다.)

students = {'s1': '홍길동', 's2': '이영지', 's3': '철수', 's4': '영희'}

print(students.get('s1')) # 홍길동
print(students.get('s5')) # None

딕셔너리 추가

‘딕셔너리이름[키(key)] = 값(value)’ 형태로 아이템을 추가한다.

추가 하려는 키가 이미 있다면 기존 값이 변경된다.

myInfo = {}

myInfo['이름'] = '박경진'
myInfo['전공'] = '컴퓨터'
myInfo['메일'] = 'gmail.com'
myInfo['학년'] = 3
myInfo['주소'] = 'seoul'
myInfo['취미'] = ['수영','여행']

print(myInfo) # {'이름': '박경진', '전공': '컴퓨터', '메일': 'gmail.com', '학년': 3, '주소': 'seoul', '취미': ['수영', '여행']}

myInfo['메일'] = 'daum.net'
print(myInfo) # {'이름': '박경진', '전공': '컴퓨터', '메일': 'daum.net', '학년': 3, '주소': 'seoul', '취미': ['수영', '여행']}

딕셔너리 수정

‘딕셔너리이름[키(key)] = 값(value)’ 형태로 아이템을 수정한다.

keys(), values(), items()

전체 키(key)와 값(values)을 조회할 수 있다.

scores = {'kor':88, 'eng':55, 'mat':85, 'sci':57, 'his':82}
print(scores) # {'kor': 88, 'eng': 55, 'mat': 85, 'sci': 57, 'his': 82}

minScore = 60
fStr = 'F(재시험)'
fDic = {}

for key in scores:
    if scores[key] < minScore:
        scores[key] = fStr
        fDic[key] = fStr

print(scores) # {'kor': 88, 'eng': 'F(재시험)', 'mat': 85, 'sci': 'F(재시험)', 'his': 82}
print(fDic) # {'eng': 'F(재시험)', 'sci': 'F(재시험)'}

딕셔너리 삭제

del과 key를 이용한 item 삭제

scores = {'kor':88, 'eng':55, 'mat':85, 'sci':57, 'his':82}

del scores['kor']
print(scores) # {'eng': 55, 'mat': 85, 'sci': 57, 'his': 82}

del scores['mat']
print(scores) # {'eng': 55, 'sci': 57, 'his': 82}

pop()와 key를 이용한 item 삭제 (삭제해도 value값을 얻을 수 있다.)

scores = {'kor':88, 'eng':55, 'mat':85, 'sci':57, 'his':82}

valueS = scores.pop('kor')
print(valueS) # 88

in, not in

키(key) 존재 유무를 판단한다. (True, False)

myInfo = {
    '이름' : '홍길동',
    '나이' : '30',
    '연락처' : '010-1324-5678',
    '주민등록번호' : '3000-123456',
    '주소' : '서울'
}
print(myInfo) # {'이름': '홍길동', '나이': '30', '연락처': '010-1324-5678', '주민등록번호': '3000-123456', '주소': '서울'}

delItems = ['연락처','주소']

for item in delItems:
    if item in myInfo:
        del myInfo[item]

print(myInfo) # {'이름': '홍길동', '나이': '30', '주민등록번호': '3000-123456'}

len()

딕셔너리의 길이(아이템 개수)를 알수 있다.

clear()

모든 아이템을 삭제한다.

이글은 제로베이스 데이터 취업스쿨의 강의자료 일부를 발췌하여 작성되었습니다.

profile
Learning Data Analyst

0개의 댓글