-
[코딩도장] day18. 세트 사용하기(2/2) - add(), remove(), discard(), pop(), clear(), copy()IT/파이썬 2020. 9. 6. 14:29
■ 들어가기
- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그
▶ Unit26. 세트 사용하기
- 26.1 세트 만들기
- 26.2 집합 연산 사용하기
- 26.3 세트 조작하기
- 26.4 세트의 할당과 복사
- 26.5 반복문으로 세트의 요소를 모두 출력하기
- 26.6 세트 표현식 사용하기
>> 26.3 세트 조작하기 <<
1. 세트에 요소를 추가하기
- 사용법 : add(요소)
>>> a = {1, 2, 3, 4}
>>> a.add(5)
>>> a
{1, 2, 3, 4, 5}2. 세트에서 특정 요소를 삭제하기
- 사용법 : remove(요소)
- 특정 요소를 삭제하고 요소가 없으면 에러 발생
>>> a
{1, 2, 3, 4, 5}
>>> a.remove(5)
>>> a
{1, 2, 3, 4}
>>> a.remove(5)
Traceback (most recent call last):
File "<pyshell#69>", line 1, in <module>
a.remove(5)
KeyError: 5- 사용법 : discard(요소)
- 특정 요소를 삭제하고 요소가 없으면 그냥 넘어감>>> a
{1, 2, 3, 4}
>>> a.discard(2)
>>> a
{1, 3, 4}
>>> a.discard(2)
>>> a
{1, 3, 4}3. 세트에서 임의의 요소를 삭제하기
- 사용법 : pop()
- 임의의 요소를 삭제하고 해당 요소를 반환하며, 요소가 없으면 에러 발생
>>> a = {1, 2, 3, 4}
>>> a
{1, 2, 3, 4}
>>> a.pop()
1
>>> a.pop()
2
>>> a.pop()
3
>>> a.pop()
4
>>> a.pop()
Traceback (most recent call last):
File "<pyshell#86>", line 1, in <module>
a.pop()
KeyError: 'pop from an empty set'- 그런데 pop은 리스트에서 마지막 요소를 삭제하는데 사용되었는데, 예제를 돌려보니 세트에서는 첫 번째 요소를 삭제하는 것 같아보이는데 임의의 요소를 삭제한다니... 뭐가 맞는거지??
4. 세트의 모든 요소를 삭제하기
- 사용법 : clear()
>>> a = {1, 2, 3, 4}
>>> a
{1, 2, 3, 4}
>>> a.clear()
>>> a
set()5. 세트의 요소 개수 구하기
- 사용법 : len(세트)
>>> a = {1, 2, 3, 4}
>>> a
{1, 2, 3, 4}
>>> len(a)
4
>> 26.4 세트의 할당과 복사 <<
- 생성 순서
1) 세트 생성
2) 다른 변수에 할당(=) => 변수 이름만 다를 뿐 동일한 세트
3) 다른 변수에 복사(copy) => 완전히 다른 세트
>>> a = {1, 2, 3, 4} # 세트 a 생성
>>> b = a # 변수 b에 세트 a 할당
>>> a is b # 세트 a와 세트 b는 동일한 객체를 나타냄
True
>>> b.add(5) # 세트 b에 요소 추가
>>> b
{1, 2, 3, 4, 5}
>>> a # 세트 a와 세트 b는 동일한 객체이므로 b에 추가한 요소가 a에도 존재
{1, 2, 3, 4, 5}
>>> c = a.copy() # 세트 c를 복사로 생성
>>> c
{1, 2, 3, 4, 5}
>>> a
{1, 2, 3, 4, 5}
>>> a is c # 세트 a와 세트 c는 다른 객체를 나타냄
False
>>> c.add(6) # 세트 c에 요소 추가
>>> c
{1, 2, 3, 4, 5, 6}
>>> a # 세트 a와 세트 c는 다른 객체를 나타내므로 세트 c에 요소 추가해도 세트 a에 영향없음
{1, 2, 3, 4, 5}
>> 26.5 반복문으로 세트의 요소를 모두 출력하기 <<
- for 반복문을 사용하여 세트의 요소 출력
- 사용법
for 변수 in 세트 :
코드
- 세트의 요소는 순서가 없으므로 출력시마다 순서가 달라짐 (숫자로만 이루어진 세트는 순서대로 출력)
>>> a = {1, 2, 3, 4}
>>> for i in a :
print(i)
1
2
3
4
>> 26.6 세트 표현식 사용하기 <<
- for 반복문과 if 조건문을 사용하여 세트 생성
- 사용법
{식 for 변수 in 반복가능한객체}
set(식 for 변수 in 반복가능한객체}
└ "반복가능한객체" 에서 유일한 문자만 꺼내서(반복x) 변수에 담아 하나 씩 꺼냄
>>> a = {i for i in 'apple'}
>>> a
{'l', 'p', 'e', 'a'}1. 세트 표현식에 if 조건문 사용하기
- 사용법
{식 for 변수 in 세트 if 조건식}
set(식 for 변수 in 세트 if 조건식)
>>> a = {i for i in 'pineapple' if i not in 'apl'} # 'a', 'p', 'l' 을 제외한 문자로 세트 생성
>>> a
{'n', 'e', 'i'}● 요약 ●
1. 할당/복사의 방법은 리스트, 딕셔너리와 동일
2. for 반복문, if 조건문을 사용하여 세트를 생성하는 방법은 리스트, 딕셔너리와 동일
'IT > 파이썬' 카테고리의 다른 글