티스토리 뷰
2.집합(set)
- 중복을 허용하지 않고
- 순서가 없음(unordered)
- 집합 자료형은 순서가 없기때문에 인덱싱으로 값을 얻을 수 없음
- 중복을 허용하지 않는 set의 특징은 자료형의 중복을 제거하기 위한 필터 역할
집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
set()
s = set(자료1, 자료2, 자료3...)
위와 같이 set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
1.집합생성 : set()
s = [1,2,3,3,2]
print(s)
s = set(s)
print(s)
type(s)
[1, 2, 3, 3, 2]
{1, 2, 3}
set
#H, l 문자가 하나씩 없고, 순서가 다름 ➔ 중복 제거, 순서 없음
s = set('hi, hello')
s
더보기
{' ', ',', 'e', 'h', 'i', 'l', 'o'}
만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한 후에 해야 한다.
s1 = set([1, 2, 3])
li1 = list(s1)
li1
li1[0]
2.집합 관련 함수
add()
- 값1개 추가 : 이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가add할 때는 다음과 같이 하면 된다.
s1 = set([1, 2, 3])
s1.add(4)
s1
update()
- 값 여러 개 추가하기여러 개의 값을 한꺼번에 추가(update)할 때는 다음과 같이 하면 된다.
s1 = set([1, 2, 3])
s1.update([4,5,6])
s1
remove()
- 특정값을 제거특정값을 제거하고 싶을 때는 다음과 같이 하면 된다.
s1 = set([1, 2, 3])
s1.remove(2)
s1
집합 주요 메서드
| 메서드 | 설명 | 예시 |
| add(x) | 항목 하나 추가 | s.add(4) |
| update([x,y,...]) | 여러 항목 한꺼번에 추가 | s.update([5,6]) |
| remove(x) | 항목 제거 (없으면 오류) | s.remove(3) |
| discard(x) | 항목 제거 (없으면 무시) | s.discard(100) |
| clear() | 모두 제거 | s.clear() |
집합 연산
a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])
print(a | b) # 합집합: {1, 2, 3, 4, 5, 6}
print(a & b) # 교집합: {3, 4}
print(a - b) # 차집합: {1, 2}
print(a ^ b) # 대칭차집합: {1, 2, 5, 6}
집합 활용 예: 중복 제거
words = ["apple", "banana", "apple", "orange", "banana"]
unique_words = list(set(words))
print(unique_words) # ['apple', 'banana', 'orange']
✅ 과제 1. 중복 제거 프로그램
다음 리스트에서 중복된 항목을 제거하고, 중복을 제거한 항목 개수와 결과 리스트를 출력하시오.
fruits = ["사과", "바나나", "사과", "포도", "포도", "귤"]
# 출력 예시
중복 제거 전: 6개
중복 제거 후: 4개
결과: ['사과', '바나나', '포도', '귤']
풀이
fruits = ["사과", "바나나", "사과", "포도", "포도", "귤"]
original_count = len(fruits)
unique_fruits = list(set(fruits))
unique_count = len(unique_fruits)
print("중복 제거 전:", original_count, "개")
print("중복 제거 후:", unique_count, "개")
print("결과:", unique_fruits)
✅ 과제 2. 사용자 입력을 통한 집합 만들기
사용자로부터 공백으로 구분된 단어들을 입력받고, 중복되지 않는 단어들만 출력하시오.
# 입력 예시
입력: dog cat dog rabbit cat monkey
# 출력 예시
중복 제거 결과: {'dog', 'cat', 'rabbit', 'monkey'}
text = input("공백으로 구분된 단어들을 입력하세요: ") # 예: dog cat dog rabbit cat monkey
words = text.split()
unique_words = set(words)
print("중복 제거 결과:", unique_words)
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 텍스트마이닝
- figma
- matplotlib
- 파이썬 기초
- 데이타R지
- 프로토타입
- 사물인터넷
- Idle
- 데이터R지
- Text Mining
- python
- 초보자를 위한 텍스트마이닝
- 안드로이드
- 텍스트 마이닝
- 컴퓨팅사고력
- 챗GPT
- 파이썬기초
- UI
- HIG
- UX
- 라이브러리
- 파이썬
- 휴리스틱평가
- 챗봇
- 4차산업혁명
- HCI
- 피그마
- 관계자분석
- 스마트기술
- IOT
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함
