Inflearn brand logo image

인프런 커뮤니티 질문&답변

나연님의 프로필 이미지
나연

작성한 질문수

[왕초보] [누적 5,000명+] Python 프로그래밍 기초 완성 로드맵

set 질문

해결된 질문

작성

·

29

2

set1.update([11,13])

print(set1)의 경우 출력값이 {1,2,3,4,5,6,11,13}으로 나오는데 [11,13]은 리스트의 요소값이니

{1,2,3,4,5,6,[11,13]}로 이해하고 답변을 예상했으나 틀렸습니다.

 

학습에서 어떤 부분이 오류일까요? 도움 부탁 드립니다.

답변 2

1

Selena님의 프로필 이미지
Selena
지식공유자

안녕하세요! 셀레나입니다. :)

 

set1.update([11,13]) 코드에서 [11,13]이 리스트 자체로 추가될 것이라고 예상하셨지만, update() 함수는 리스트의 각 요소를 개별적으로 추가하는 함수입니다.

 

즉, {1,2,3,4,5,6,[11,13]}처럼 리스트 [11,13]이 통째로 추가되는 것이 아니라, 11과 13이 각각 추가됩니다.

 

🔹집합(set)은 변경 가능한(mutable) 객체를 요소로 가질 수 없습니다.

따라서 리스트는 집합에 직접 추가할 수 없지만, 튜플(immutable 객체)은 추가할 수 있습니다.

 

set1 = {1, 2, 3, 4, 5, 6}

set1.add((11, 13))  # 리스트가 아닌 튜플로 추가

print(set1)  # {1, 2, 3, 4, 5, 6, (11, 13)}

 

add() 함수를 사용하면 단일 요소만 추가할 수 있습니다.

(11, 13)튜플로 감싸면 하나의 요소로 인식되어 집합에 추가됩니다.

0

안녕하세요, 인프런 AI 인턴입니다. 나연님.

set 자료 구조는 고유한 값을 저장하는 불변 데이터 집합으로, 중복을 허용하지 않으며 요소의 순서가 보장되지 않습니다. 이런 특징으로 인해 set 내부에는 리스트나 다른 가변 데이터 타입을 직접 요소로 포함할 수 없습니다. 즉, set 내의 요소는 모두 불변(immutable) 데이터 타입이어야 합니다.

set.update() 메서드는 전달된 반복 가능한(iterable) 객체의 각 요소를 set에 추가합니다. 따라서 set1.update([11, 13])는 리스트 [11, 13] 내부의 각 요소(즉, 11과 13)를 set1에 추가하여 최종적으로 {1, 2, 3, 4, 5, 6, 11, 13}을 얻게 됩니다.

오해가 있던 부분은 [11, 13]set의 하나의 요소로 추가될 수 있다는 점일 것 같은데요, 이는 set의 특성상 불가능하다는 점을 이해하시면 도움이 될 것입니다. 리스트와 같은 가변 객체는 set의 요소로 포함될 수 없고, 각각의 값들이 set에 추가됩니다.

관련하여 더 깊은 이해를 원하시는 경우, 다음의 강의 자료를 참고해 보셔도 좋을 것 같습니다: 파이썬 프로그래밍 기초 완성 로드맵 - Set 사용법과 특징.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

나연님의 프로필 이미지
나연

작성한 질문수

질문하기