서론 및 문제
이번에는 정보처리기사 실기 시험에 나온 파이썬 딕셔너리 문제를 풀어보고자 한다. 지난 포스팅을 보려면 여기로 가면 된다. 2023년 1회에 나온 문제로, 문제를 보고 한 번 풀어본 다음, 아래 풀이를 보는걸 추천한다. 다음 코드를 보고 출력값을 맞춰보자.
a = {'한국', '중국', '일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩', '한국', '태국'})
print(a)
풀이
{}로 된걸로 보아, a는 딕셔너리 형태다. 딕셔너리의 특징 중 하나는 set의 특징이 있다는 것이다. 키 값이 중복될 수 없다는 점과 순서가 없다는 점이다. 그래서 a.add('베트남')을 하면 a = {'한국','중국','일본','베트남'}이 되지만, a.add('중국')을 하면, 이미 중국이 a에 있기에 변화 하지 않는다. a는 그대로 {'한국','중국','일본','베트남'} 인것. a.remove를 하면 {'한국','중국','일본','베트남'}에서 일본이 사라진다. 그러므로 4번째 줄을 시하면 {'한국','중국','베트남'}이 된 상태가 된다. a.update({'홍콩','한국','태국'})은 a와 합치는건데, 딕셔너리 특성상 위에 중복시키지 않는 선에서 업데이트를 하면 그 결과는 {'한국','중국','베트남','홍콩','태국'}이 된다. 순서는 상관 없기에 내용만 같다면 다 같은 정답 처리가 된다.
.add()와 .update()의 차이는?
그럼 똑같은 딕셔너리인데, a.add({'홍콩','한국','태국'})랑 a.update({ '홍콩','한국','태국'})랑 뭐가 다른지 궁금할 수 있다. 결론부터 말하자면 전자는 오류가 나온다. 왜냐 add함수는 하나의 요소만 추가할 수 있기 때문이다. 그리고 사실 add는 a.add({'한국'})과 같이 딕셔너리 형식으로 넣을 수 없다. add는 해시 가능한 객체만 가능한데 딕셔너리 형식은 mutable이기 때문이다. 그러므로, a.update({ '홍콩','한국','태국'})와 같은 결과가 나오기 위해 add함수를 쓰기 위해서는 아래와 같이 선언해야 한다.
a.add('홍콩')
a.add('한국')
a.add('태국')
'IT, Computer' 카테고리의 다른 글
티스토리 hELLO 스킨 적용 방법 (0) | 2025.04.10 |
---|---|
[정보처리기사] 프로그래밍 언어 문제 풀이 (4) - JAVA 싱글턴 패턴 (0) | 2025.04.09 |
[정보처리기사] 프로그래밍 언어 문제 풀이 (2) - 정적 변수 (0) | 2025.04.07 |
[정보처리기사] 프로그래밍 언어 문제 풀이 (1) - 포인터 (0) | 2025.04.06 |
OSError: [WinError 10014] 호출에 대한 포인터 인수를 사용하려는 동안 시스템에서 잘못된 포인터 주소를 감지했습니다. 해결법 (0) | 2025.03.01 |