728x90
파이썬에서는 집합 형태의 자료형을 선언해서 사용할 수 있다.
집합의 특징은 2가지가 있다.
- 중복해서 선언할 수 없다.
- 순서를 정할 수 없다.
그럼 이해를 돕기 위해 바로 집합의 선언 방법과 출력결과를 알아보도록 하자.
group1 = set([13, 1, 5])
group2 = set(['13', '1', '5', '1'])
group3 = set("apple")
print("group1 : %s" %group1)
print("group2 : %s" %group2)
print("group3 : %s" %group3)
################출력 결과################
group1 : {1, 5, 13}
group2 : {'1', '13', '5'}
group3 : {'p', 'l', 'a', 'e'}
그룹은 set으로 선언할 수 있는데
숫자를 리스트 형태로 집합으로 만들거나
문자 단위로 선언하거나
문자열 형태로 선언할 수 있다.
그런데 출력 결과를 보면 매우 이상하다는 것을 볼 수 있다.
숫자 형태로 선언하였을 경우에는 오름차순으로 정렬이 되지만
문자 단위나 문자열로 집합을 만들경우에는 순서가 뒤죽박죽인 것을 볼 수 있다.
나중에 확인한 건데 숫자의 경우도 집합에 따라서 순서가 뒤죽박죽이었다.
이는 앞서 설명한 순서를 정할 수 없다는 특성 때문이다.
문자열이나 문자의 경우에는 선언할 때마다 순서가 계속 바뀌는 것을 확인할 수 있다.
추가로 집합에서는 순서라는 개념이 없기 때문에 특정 인덱스의 값을 추출하려면 리스트나 튜플형태로 다시 선언한 후에 출력해야 한다. 예제는 아래를 참고하자.
group1 = set([13, 1, 5])
group3 = set("apple")
list_1 = list(group1)
tuple_1 = tuple(group3)
print("list_1 : %s" %list_1)
print("list_1[2] : %s" %list_1[2])
print("tuple_1 : ", tuple_1)
print("tuple_1[1] : %s" %tuple_1[1])
################출력 결과################
list_1 : [1, 5, 13]
list_1[2] : 13
tuple_1 : ('p', 'e', 'a', 'l')
tuple_1[1] : e
그럼 이어서 집합 자료형으로 무엇을 할 수 있는지 확인해 보자.
교집합 구하기
group1 = set([1, 1, 9, 'h', 'e', 'l', 'p'])
group2 = set([1, 1, 2, 'h', 'e', 'l', 'p'])
group3 = group1&group2
print("교집합 : %s" %group3)
################출력 결과################
교집합 : {1, 'e', 'h', 'p', 'l'}
교집합의 경우 겹치는 것에 대한 것은 하나만 출력되는 것을 볼 수 있다.
차집합 구하기
group1 = set([1, 1, 9, 'h', 'e', 'l', 'p'])
group2 = set([1, 1, 2, 'h', 'e', 'l', 'p'])
group3 = group1 - group2
group4 = group2 - group1
print("차집합_1 : %s" %group3)
print("차집합_2 : %s" %group4)
################출력 결과################
차집합_1 : {9}
차집합_2 : {2}
차집합의 경우 계산결과를 보면 겹치는 것만 빠지는 것을 볼 수 있다.
다음으로 집합 관련 함수들을 알아보자.
집합.add(x)
group = set([1, 1, 9, 'h', 'e', 'l'])
group.add('p')
print("group : %s" %group)
################출력 결과################
group : {1, 'p', 9, 'e', 'h', 'l'}
집합에 하나의 데이터만 추가 가능하고 출력했을 때는 순서는 랜덤하게 출력된다.
집합.update(리스트)
group = set([1, 1, 9])
add_group = set('help')
group.update(add_group)
print("group : %s" %group)
################출력 결과################
group : {'p', 1, 'h', 'e', 9, 'l'}
집합에 문자열의 데이터 모두 추가되고 출력했을 때는 순서는 랜덤하게 출력된다.
집합.remove(x)
group = set([11, 6, 7, 1, 1])
group.remove(1)
print("group : %s" %group)
################출력 결과################
group : {11, 6, 7}
728x90
'Python' 카테고리의 다른 글
파이썬에서 조건문 if 사용 방법 (0) | 2024.06.16 |
---|---|
파이썬에서 bool을 다뤄보기 (0) | 2024.06.14 |
파이썬, 딕셔너리 사용 방법 (1) | 2024.06.11 |
파이썬에서 튜플 사용하는 방법과 리스트와의 차이 (0) | 2024.06.10 |
파이썬에서 리스트를 다뤄보자 (0) | 2024.06.08 |