728x90
반응형
파이썬 실습창을 열 수 있습니다.실습창 열기
1. 셑 메소드
set(집합)은 중복되지 않은 item들의 순서 없는 모임입니다. set과 frozenset의 두 종류가 있습니다.
set은 변경이 가능한 집합이고 (mutable) , frozenset은 변경이 불가능한 집합입니다(immutable).
set object와 관련된 연산과 메소드입니다.
example을 실습하세요.
no | item form | example | output | |
1 | a=s | t b=s & t c=s - t d=s ^ t |
s={1, 3, 5, 7} t={2, 3, 7} a=s | t b=s & t c=s - t d=s ^ t print(a,b,c,d) |
{1, 2, 3, 5, 7} {3, 7} {1, 5} {1, 2, 5} ∙합집합 ∙교집합 ∙차집합 ∙대칭 차집합 (한쪽에만 있는 항목) |
|
2 | len(s) max(s) min(s) |
s={1, 3, 5, 7} a=len(s) b=max(s) c=min(s) print(a) print(b) print(c) |
4 7 1 ∙s의 항목 개수를 반환 ∙s의 최대값 항목을 반환 ∙s의 최소값 항목을 반환 |
|
3 | s.copy() | s={1, 3, 5, 7} t=s.copy() print(s) print(t) |
{1, 3, 5, 7} {1, 3, 5, 7} s의 복사본을 만든다. |
|
4 | s.union(t) s.intersection(t) s.difference(t) s.symmetric_difference(t) |
s={1, 3, 5, 7} t={2, 3, 7} a=s.union(t) b=s.intersection(t) c=s.difference(t) d=s.symmetric_difference(t) print(a) print(b) print(c) print(d) |
{1, 2, 3, 5, 7} {3, 7} {1, 5} {1, 2, 5} ∙합집합(|와 같다) ∙교집합(&와 같다) ∙차집합(-와 같다) ∙대칭 차집합(^와 같다) |
|
5 | s.issubset(t) s.issuperset(t) |
s={1, 3, 5, 7} t={3, 7} a=s.issuperset(t) print(a) |
True ∙s가 t의 부분집합인 경우 True ∙s가 t의 포함집합인 경우 True |
|
6 | s.add(item) | s={1, 3, 5, 7} t={3, 7} s.add(9) print(s) |
{1, 9, 3, 5, 7} s에 item을 추가한다. 같은 item이 있으면 효과가 없다. item 순서가 바뀔 수 있다. |
|
7 | s.discard(item) | s={1, 3, 5, 7} t={3, 7} s.discard(5) print(s) |
{1, 3, 7} s에서 item을 제거한다. item 없으면 효과 없다. |
|
8 | s.remove(item) | s={1, 3, 5, 7} t={3, 7} s.remove(9) print(s) |
KeyError: 9 s에서 item을 제거한다. item 없으면 KeyError 발생된다. |
|
9 | s.clear() | s={1, 3, 5, 7} t={2, 3, 5, 7, 9} s.clear() print(s) |
set() s에서 모든 항목을 제거한다. 공집합이 된다. |
|
10 | s.update(t) | s={1, 3} t={2, 3, 5} s.update(t) print(s) |
{1, 2, 3, 5} s에 t의 모든 항목을 추가한다. |
|
11 | s.difference_update(t) | s={1, 3, 5, 7} t={2, 3, 5, 7, 9} s.difference_update(t) print(s) |
{1} s에서 t에 있는 모든 항목을 제거한다. |
⦁ a는 b의 포함집합(supper set), b는 a의 부분 집합(sub set)입니다.
⦁ 6번부터 11번까지는 set(변경 가능한 집합)에서 사용할 수 있습니다.
⦁ mutable object(변경 가능한 객체)는 실행 중 내용을 바꿀 수 있는 str, list, dict, set 등이고,
immutable object(변경 불가능한 객체)는 int, float, complex, str, tuple, frozenset 등입니다.
2. 단골 고객
다음은 어제와 오늘 우리 가게를 방문한 고객 이름입니다.
어제: alice, bob, tony, suzy
오늘: bob, minsu, tony, suzy, jin
어제와 오늘 이틀 연속하여 우리 가게를 방문한 고객이 누구인지 알고 싶습니다.
해결하여 보세요.
더보기
yesterday = 'alice bob tony suzy'
today = 'bob minsu tony suzy jin'
yset = set(yesterday.split())
tset = set(today.split())
customer = yset & tset # 교집합을 구한다.
print(customer)
'''
{'tony', 'bob', 'suzy'} 순서는 바뀔 수 있습니다.
'''
수고하셨습니다.
오늘 끝.
728x90
반응형
'알고리듬' 카테고리의 다른 글
[알고리듬] #35 내장함수 (0) | 2024.04.05 |
---|---|
[알고리듬] #34 구문구조와 할당문 (0) | 2024.04.05 |
[알고리듬] #31 딕셔너리 메소드 (1) | 2024.04.03 |
[알고리듬] #30 주민등록번호 (1) | 2024.04.02 |
[알고리듬] #29 리스트 튜플 레인쥐 메소드 (0) | 2024.03.31 |