개발하고 싶어요
set 본문
In [7]:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity="all"
set만들기¶
- set = {값1, 값2, 값3}
- 순서X, 중복X
In [2]:
set1 = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'}
set1
Out[2]:
{'cherry', 'grape', 'orange', 'pineapple', 'strawberry'}
In [8]:
set1 = {'orange', 'orange', 'cherry'}
set1
set1['cherry'] # 특정 요소를 출력X
Out[8]:
{'cherry', 'orange'}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[8], line 5
1 set1 = {'orange', 'orange', 'cherry'}
4 set1
----> 5 set1['cherry']
TypeError: 'set' object is not subscriptable
set에서 특정 값이 있는지 확인하기¶
- 값 in set
- 값 not in set
In [11]:
set1 = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'}
'orange' in set1
'peach' in set1
'peach' not in set1
'orange' not in set1
Out[11]:
True
Out[11]:
False
Out[11]:
True
Out[11]:
False
set을 사용하여 set 만들기¶
- set(반복가능한객체)
- type(객체)
In [12]:
set1 = set('apple')
set1
Out[12]:
{'a', 'e', 'l', 'p'}
In [15]:
set1 = set(range(5))
set1
Out[15]:
{0, 1, 2, 3, 4}
In [16]:
set1 = set()
set1
Out[16]:
set()
In [17]:
set1 = set()
type(set1)
Out[17]:
set
집합 연산 사용¶
- set1 | set2 (set.union(set1, set2)) : 합집합, or 연산자
In [18]:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set1 | set2
set.union(set1, set2)
Out[18]:
{1, 2, 3, 4, 5, 6}
Out[18]:
{1, 2, 3, 4, 5, 6}
- set1 & set2 (set.intersection(set1, set2)) : 교집합, and 연산자
In [19]:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set1 & set2
set.intersection(set1, set2)
Out[19]:
{3, 4}
Out[19]:
{3, 4}
- set1 - set2 (set.difference(set1, set2)) : 차집합, -(뺄셈)연산자
In [20]:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set1 - set2
set.difference(set1, set2)
Out[20]:
{1, 2}
Out[20]:
{1, 2}
- set1 ^ set2 (set.symmetric_difference(set1, set2)) : 대칭차집합 : xor 연산자
In [21]:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set1 ^ set2
set.symmetric_difference(set1, set2)
Out[21]:
{1, 2, 5, 6}
Out[21]:
{1, 2, 5, 6}
집합 연산 후 할당 연산자 사용¶
- set1 |= set2 (set1.update(set2)) : update 메서드
In [25]:
set1 = {1, 2, 3, 4}
set1 |= {5}
set1
set1 = {1, 2, 3, 4}
set1.update({5})
set1
Out[25]:
{1, 2, 3, 4, 5}
Out[25]:
{1, 2, 3, 4, 5}
- set1 &= set2 (set1.intersection_update(set2)) : intersection_update 메서드
In [26]:
set1 = {1, 2, 3, 4}
set1 &= {0, 1, 2, 3, 4}
set1
set1 = {1, 2, 3, 4}
set1.intersection_update({0, 1, 2, 3, 4})
set1
Out[26]:
{1, 2, 3, 4}
Out[26]:
{1, 2, 3, 4}
- set1 -= set2 (set1.difference_update(set2)) : difference_update 메서드
In [27]:
set1 = {1, 2, 3, 4, 5, 6}
set1 -= {3, 4}
set1
set1 = {1, 2, 3, 4, 5, 6}
set1.difference_update({3, 4})
set1
Out[27]:
{1, 2, 5, 6}
Out[27]:
{1, 2, 5, 6}
- set1 ^= set2 (set1.symmetric_difference_update(set2)) : symmetric_difference_update 메서드
In [28]:
set1 = {1, 2, 3, 4, 5, 6}
set1 ^= {3, 4}
set1
set1 = {1, 2, 3, 4, 5, 6}
set1.symmetric_difference_update({3, 4})
set1
Out[28]:
{1, 2, 5, 6}
Out[28]:
{1, 2, 5, 6}
In [29]:
set1 = {1, 2, 3, 4}
set1 <= {1, 2, 3, 4}
set1.issubset({1, 2, 3, 4})
Out[29]:
True
Out[29]:
True
- 현재세트 < 다른세트 : 진부분집합
In [30]:
set1 = {1, 2, 3, 4}
set1 < {1, 2, 3, 4,5}
Out[30]:
True
- 현재세트 >= 다른세트 : 상위집합
- 현재세트.issuperset(다른세트)
In [31]:
set1 = {1, 2, 3, 4}
set1 >= {1, 2, 3, 4} # set1이 {1, 2, 3, 4}의 상위집합이니??
set1.issuperset({1, 2, 3, 4})
Out[31]:
True
Out[31]:
True
- 현재세트 > 다른세트 : 진상위집합
In [32]:
set1 = {1, 2, 3, 4}
set1 > {1, 2, 3}
Out[32]:
True
set가 같은지 다른지 확인¶
- set1 == set2
In [33]:
set1 = {1, 2, 3, 4}
set1 == {1, 2, 3}
set1 == {4, 3, 2, 1}
set1 != {4, 3, 2, 1}
Out[33]:
False
Out[33]:
True
Out[33]:
False
set가 겹치지 않는지 확인¶
- 겹치는 요소가 X -> True
In [34]:
set1 = {1, 2, 3, 4}
set1.isdisjoint({5, 6, 7, 8})
set1.isdisjoint({3, 4, 5, 6})
Out[34]:
True
Out[34]:
False
set조작하기¶
set에 요소를 추가¶
- add(요소)
In [35]:
set1 = {1, 2, 3, 4}
set1.add(5)
set1
Out[35]:
{1, 2, 3, 4, 5}
set에서 특정 요소를 삭제¶
- emove(요소)
- discard(요소)
In [36]:
set1 = {1, 2, 3, 4}
set1.remove(3)
set1
Out[36]:
{1, 2, 4}
In [37]:
set1 = {1, 2, 3, 4}
set1.discard(3)
set1
Out[37]:
{1, 2, 4}
set에서 임의의 요소를 삭제¶
- pop(요소)
In [38]:
set1 = {1, 2, 3, 4}
set1.pop()
set1
Out[38]:
1
Out[38]:
{2, 3, 4}
set의 모든 요소를 삭제¶
- clear()
In [42]:
set1 = {1, 2, 3, 4}
set1.clear()
set1
Out[42]:
set()
set의 요소 개수 구하기¶
- len(set)
In [43]:
set1 = {1, 2, 3, 4}
len(set1)
Out[43]:
4
set의 할당과 복사¶
In [45]:
set1 = {1, 2, 3, 4}
set2 = set1
set1 is set2
Out[45]:
True
In [46]:
set2
set2.add(5)
set1
set2
Out[46]:
{1, 2, 3, 4}
Out[46]:
{1, 2, 3, 4, 5}
Out[46]:
{1, 2, 3, 4, 5}
In [47]:
set1 = {1, 2, 3, 4}
set2 = set1.copy()
set1 is set2
Out[47]:
False
In [48]:
set1 = {1, 2, 3, 4}
set2 = set1.copy()
set2.add(5)
set1
set2
Out[48]:
{1, 2, 3, 4}
Out[48]:
{1, 2, 3, 4, 5}
반복문으로 set의 요소를 모두 출력¶
In [49]:
set1 = {1, 2, 3, 4}
for i in set1:
print(i, end = ' ')
1 2 3 4
set 표현식 사용하기¶
- {식 for 변수 in 반복가능한객체}
- set(식 for 변수 in 반복가능한객체)
In [50]:
set1 = {i for i in {1, 2, 3, 4}}
set1
Out[50]:
{1, 2, 3, 4}
In [53]:
set1 = set(i * 2 for i in {1, 2, 3, 4})
set1
Out[53]:
{2, 4, 6, 8}
set 표현식에 if 조건문 사용하기¶
- {식 for 변수 in set if 조건식}
- set(식 for 변수 in set if 조건식)
In [54]:
set1 = {i * 2 for i in range(10) if i % 2 == 0}
set1
Out[54]:
{0, 4, 8, 12, 16}
'PYTHON' 카테고리의 다른 글
함수 - 기본 개념, 위치 인수와 키워드 인수 (0) | 2023.12.27 |
---|---|
파일 사용하기 (1) | 2023.12.26 |
딕셔너리 응용하기 (1) | 2023.12.26 |
문자열 응용하기 (0) | 2023.12.26 |
리스트, 튜플 응용 (0) | 2023.12.26 |