python.add에 대해서
3
작성한 질문수 2
python.add()는 중간에 삽입될 수도 있고, 맨 처음 삽입될 수도 있는건가요?
java = {"유재석", "김태호", "양세형"};
python = set(["유재석", "박명수"]);
# 교집합 - java, python을 모두 사용할 수 있는 개발자
print(java & python);
print(java.intersection(python));
# 합집합 (java도 할 수 있거나, python 할 수 있는 개발자)
print(java | python);
print(java.union(python));
# 차집합 (java 할 수 있으나ㅑ python은 할 줄 모름)
print(java - python);
print(java.difference(python));
# python 할 줄 아는 사람이 늘어남.
python.add("김태호");
print(python);
python.add("양세형");
print(python);
{'유재석', '김태호', '박명수'}
{'양세형', '유재석', '김태호', '박명수'}
마지막 print문 2개에 대한 결과는
김태호를 추가했을 땐 유재석과 박명수 사이에 삽입되었고, 양세형을 추가했을 때에는 맨 앞에 추가되어서, 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 짼짼이님.
파이썬의 set은 순서가 없는 자료형입니다. 따라서 요소들이 추가될 때 특정한 “순서”를 보장하지 않기 때문에 요소의 위치가 고정되지 않습니다. 이는 set의 특성으로, 요소가 추가되거나 변경됨에 따라 내부적으로 최적화되어 저장되기 때문에 종종 예상치 않은 위치에 요소가 추가될 수 있습니다.
실제로 set에 요소를 추가할 때, 추가된 요소가 특정 위치에 삽입되는 것은 아닙니다. 즉, python.add("김태호")나 python.add("양세형")를 호출할 때 항목들이 set의 출력 순서에 따라 특정 위치에 “삽입”된 것처럼 보일 수 있지만 실제로는 그 순서가 정해져 있지 않습니다.
이 점 때문에 set은 데이터의 중복을 제거하고, 특정 데이터의 존재 여부를 검사하는 등의 용도로 적합합니다. 만약 특정 위치에 데이터를 추가하거나 데이터의 순서를 유지해야 하는 경우라면 list 자료형을 사용하는 것이 좋습니다.
추가로 set에 관한 추가적인 예제와 설명은 아래 링크에서 참고하시면 좋습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
변수의 문자열 출력문에 대해서 질문이 있습니다.
0
40
1
quiz 8 오류 문제
0
90
1
str() 작성 위치
0
72
1
아나콘다
0
88
1
윈도우 설치 도와주세요
0
98
1
std_weight함수에서weight만return가능한가요?
0
80
1
오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.
0
50
1
설치해서 시작하는데 문제가 있습니다.
0
89
1
함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?
0
143
1
2장 환경설정 문의
0
93
1
스타크래프트 프로젝트
0
97
1
python 파일명.py 입력시 Python 출력
0
170
1
로드맵 질문있습니다!
0
106
2
오류
0
86
1
질문 있습니다.
0
89
1
블로그에 학습한 내용을 정리해도 괜찮을까요?
0
191
1
#퀴즈 3의 5번 질문
0
84
1
print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다
0
93
1
가변인자의 위치가 중요한가요?
0
96
1
vscode옛날 버전 설치
0
249
1
글자색상이 선생님처럼 안나옵니다
0
202
1
슬프네
0
167
1
quiz 6번 관련 문의입니다.
0
147
1
퀴즈#3에 대해서 이렇게 작성해도 되나요?
0
215
1





