CodeGym /행동 /Python SELF KO /Python의 집합

Python의 집합

Python SELF KO
레벨 9 , 레슨 2
사용 가능

2.1 집합과 그 속성

집합은 프로그래밍에서 특별한 종류의 컬렉션으로, 고유한 요소들을 저장하는 데 도움을 줘. 쉽게 말해, 집합은 반복되지 않는 항목만 담을 수 있는 바구니와 비슷해. 만약 이미 바구니에 있는 걸 넣으려 한다면, 바구니는 그 행동을 무시할 거야.

집합의 주요 특징

고유성:

집합의 각 요소는 고유해. 이미 집합에 존재하는 요소를 추가하려고 하면, 중복해서 추가되진 않을 거야.

무순서성:

리스트와 달리, 집합의 요소는 특정 순서가 없어. 즉, 인덱스로 요소에 접근할 수 없어.

변경 가능성:

집합은 변경 가능해 — 요소를 추가하거나 삭제할 수 있어. 하지만 집합의 요소들은 변경 불가능해야 해 (예를 들어 숫자, 문자열, 튜플).

2.2 Python에서 집합 생성하기

Python에서 집합을 생성하는 모든 방법을 살펴보자. 이렇게 하면 집합을 다룰 수 있는 완전한 도구를 갖게 될 거야.

중괄호 사용하기

가장 흔한 집합 생성 방법은 중괄호 {}를 사용하는 거야. 튜플이나 리스트를 다룰 때처럼, 중괄호 안에 요소들을 나열하면 돼:


fruit_set = {"apple", "banana", "cherry"}
print(fruit_set)  # 출력: {"banana", "cherry", "apple"}
        

요소들은 다양한 타입일 수 있지만, 각 요소는 고유해야 해.


fruit_set = {"apple", 1, 3.25}
print(fruit_set)  # 출력: {1, "apple", 3.25} 
        

set() 함수 사용하기

set() 함수는 다른 iterable 객체, 예를 들어 리스트, 문자열 또는 튜플에서 집합을 생성하는 데 쓸 수 있어.

리스트에서


list_to_set = set([1, 2, 3, 4, 4, 5])
print(list_to_set)  # 출력: {1, 2, 3, 4, 5} 
        

문자열에서


string_to_set = set("hello")
print(string_to_set)  # 출력: {"h", "e", "l", "o"} 
        

튜플에서


tuple_to_set = set((1, 2, 3, 4, 5))
print(tuple_to_set)  # 출력: {1, 2, 3, 4, 5} 
        

다른 집합에서

다른 집합에서 집합을 생성할 수 있어, 이는 복사를 만들 때 유용해.


original_set = {"apple", "banana", "cherry"}
new_set = set(original_set)
print(new_set)  # 출력: {"banana", "cherry", "apple"} 
        

빈 집합

빈 집합을 만들려면 set() 함수를 사용해. 중괄호 {}를 사용하면 빈 딕셔너리 (dictionary)가 만들어지지 집합이 만들어지진 않아.


empty_set = set()
print(empty_set)  # 출력: set() 
        

2.3 메서드 목록

Python의 집합은 데이터 컬렉션을 효율적으로 관리할 수 있는 여러 메서드를 제공해. set 클래스의 가장 인기 있는 메서드 중 몇 가지는 다음과 같아:

메서드 설명
add() 집합에 요소를 추가해
remove() 집합에서 요소를 삭제해, 요소가 없으면 에러를 발생시켜
discard() 집합에서 요소를 삭제해, 요소가 없어도 에러가 발생하지 않아
pop() 랜덤한 요소를 삭제하고 반환해, 집합이 비어 있으면 에러를 발생시켜
clear() 집합의 모든 요소를 삭제해
union() 집합의 합집합을 반환해
intersection() 집합의 교집합을 반환해
difference() 집합의 차집합을 반환해
symmetric_difference() 집합의 대칭차집합을 반환해
update() 다른 집합이나 iterable 객체의 요소를 현재 집합에 추가해

아래에서는 이 모든 메서드의 사용 방법과 몇 가지 추가 내용을 다룰 거야.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION