파이썬 세트
Python Set은 반복 가능하고 변경 가능하며 중복 요소가 없는 정렬되지 않은 데이터 유형 모음입니다. 집합의 요소 순서는 정의되지 않지만 다양한 요소로 구성될 수 있습니다. 목록과 달리 집합을 사용하는 가장 큰 장점은 특정 요소가 집합에 포함되어 있는지 확인하는 데 고도로 최적화된 방법이 있다는 것입니다. 여기서는 Python에서 집합이 무엇인지 살펴보고 집합 Python의 다양한 예도 살펴보겠습니다.
Python에서 세트 만들기
Python 세트는 내장된 기능을 사용하여 생성할 수 있습니다. 세트() '쉼표'로 구분된 중괄호 안에 시퀀스를 배치하여 반복 가능한 객체 또는 시퀀스와 함께 작동합니다.
파이썬3메모: Python 세트는 변경 불가능하므로 목록이나 사전과 같은 변경 가능한 요소를 가질 수 없습니다.
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Creating a Set with the use of a String set1 = set('GeeksForGeeks') print('
Set with the use of String: ') print(set1) String = 'GeeksForGeeks' set1 = set(String) print('
Set with the use of an Object: ') print(set1) # Creating a Set with the use of a List set1 = set(['Geeks', 'For', 'Geeks']) print('
Set with the use of List: ') print(set1) # Creating a Set with the use of a tuple t = ('Geeks', 'for', 'Geeks') print('
Set with the use of Tuple: ') print(set(t)) # Creating a Set with the use of a dictionary d = {'Geeks': 1, 'for': 2, 'Geeks': 3} print('
Set with the use of Dictionary: ') print(set(d)) 산출
Initial blank Set: set() Set with the use of String: {'e', 'G', 's', 'F', 'o', 'r', 'k'} Set with the use of an Object: {'e', 'G', 's', 'F', 'o', 'r', 'k'} Set with the use of List: {'For', 'Geeks'} Set with the use of Tuple: {'for', 'Geeks'} Set with the use of Dictionary: {'for', 'Geeks'} 시간 복잡도: O(n), 여기서 n은 입력 문자열, 목록, 튜플 또는 사전의 길이입니다.
보조 공간: O(n), 여기서 n은 입력 문자열, 목록, 튜플 또는 사전의 길이입니다.
Python 세트에는 고유한 요소만 포함되어 있지만 세트 생성 시 여러 중복 값이 전달될 수도 있습니다. Python 세트의 요소 순서는 정의되지 않으며 변경할 수 없습니다. 세트의 요소 유형은 동일할 필요가 없으며, 다양한 혼합 데이터 유형 값이 세트에 전달될 수도 있습니다.
파이썬3 # Creating a Set with a List of Numbers # (Having duplicate values) set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5]) print('
Set with the use of Numbers: ') print(set1) # Creating a Set with a mixed type of values # (Having numbers and strings) set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks']) print('
Set with the use of Mixed Values') print(set1) 산출
Set with the use of Numbers: {1, 2, 3, 4, 5, 6} Set with the use of Mixed Values {1, 2, 4, 6, 'Geeks', 'For'} 다른 방법으로 Python 세트 만들기
이 예에서 집합은 숫자 1,2, 3을 포함하는 중괄호 {} 표기법을 사용하여 생성됩니다. Python의 집합 데이터 구조 또는 Python의 순서가 지정되지 않은 집합은 고유 요소의 순서가 지정되지 않은 컬렉션이므로 고유성과 특성이 필요한 작업에 적합합니다. Python에서 작업을 설정합니다.
파이썬3 # Another Method to create sets in Python3 # Set containing numbers my_set = {1, 2, 3} print(my_set) 산출
{1, 2, 3} Python에서 세트에 요소 추가하기
다음은 Python에서 집합에 요소를 추가할 수 있는 몇 가지 접근 방식입니다.
- add() 메소드 사용
- update() 메소드 사용
add() 메소드 사용
요소를 추가할 수 있습니다. Python의 집합 내장된 기능을 사용하여 추가하다() 기능. add() 메소드를 사용하면 한 번에 하나의 요소만 세트에 추가할 수 있으며, 루프는 add() 메소드를 사용하여 한 번에 여러 요소를 추가하는 데 사용됩니다.
파이썬3메모: 목록은 해시 가능하지 않기 때문에 목록을 요소로 집합에 추가할 수 없지만 튜플은 불변이므로 해시 가능하므로 튜플을 추가할 수 있습니다.
# Creating a Set set1 = set() print('Initial blank Set: ') print(set1) # Adding element and tuple to the Set set1.add(8) set1.add(9) set1.add((6, 7)) print('
Set after Addition of Three elements: ') print(set1) # Adding elements to the Set # using Iterator for i in range(1, 6): set1.add(i) print('
Set after Addition of elements from 1-5: ') print(set1) 산출
Initial blank Set: set() Set after Addition of Three elements: {8, 9, (6, 7)} Set after Addition of elements from 1-5: {1, 2, 3, (6, 7), 4, 5, 8, 9} update() 메소드 사용
두 개 이상의 요소를 추가하려면 Update() 메서드를 사용합니다. update() 메소드는 목록, 문자열, 튜플 및 기타 Python 해시 세트를 인수로 허용합니다. 이러한 모든 경우에 중복 요소는 방지됩니다.
파이썬3 # Addition of elements to the Set # using Update function set1 = set([4, 5, (6, 7)]) set1.update([10, 11]) print('
Set after Addition of elements using Update: ') print(set1) 산출
Set after Addition of elements using Update: {4, 5, (6, 7), 10, 11} Python에서 세트에 액세스하기
세트 항목은 색인을 참조하여 액세스할 수 없습니다. 세트는 순서가 없고 항목에는 색인이 없기 때문입니다. 그러나 for 루프를 사용하여 Python 해시 세트 항목을 반복하거나 in 키워드를 사용하여 지정된 값이 세트에 있는지 물어볼 수 있습니다.
파이썬3 # Creating a set set1 = set(['Geeks', 'For', 'Geeks.']) print('
Initial set') print(set1) # Accessing element using # for loop print('
Elements of set: ') for i in set1: print(i, end=' ') # Checking the element # using in keyword print('
') print('Geeks' in set1) 산출
Initial set {'Geeks.', 'For', 'Geeks'} Elements of set: Geeks. For Geeks True Python의 세트에서 요소 제거
다음은 Python의 집합에서 요소를 제거할 수 있는 몇 가지 방법입니다.
- Remove() 메서드 또는 Discard() 메서드 사용
- pop() 메소드 사용
- Clear() 메소드 사용
Remove() 메서드 또는 Discard() 메서드 사용
요소는 에서 제거될 수 있습니다. Python의 집합 내장된 제거() 함수를 사용하지만 해당 요소가 해시세트 Python에 존재하지 않으면 KeyError가 발생합니다. KeyError 없이 집합에서 요소를 제거하려면 Discard()를 사용하세요. 해당 요소가 집합에 존재하지 않으면 변경되지 않은 채로 유지됩니다.
파이썬3 # Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing elements from Set using Remove() method set1.remove(5) set1.remove(6) print('
Set after Removal of two elements: ') print(set1) # Removing elements from Set using Discard() method set1.discard(8) set1.discard(9) print('
Set after Discarding two elements: ') print(set1) # Removing elements from Set using iterator method for i in range(1, 5): set1.remove(i) print('
Set after Removing a range of elements: ') print(set1) 산출
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after Removal of two elements: {1, 2, 3, 4, 7, 8, 9, 10, 11, 12} Set after Discarding two elements: {1, 2, 3, 4, 7, 10, 11, 12} Set after Removing a range of elements: {7, 10, 11, 12} pop() 메소드 사용
Pop() 함수를 사용하여 집합에서 요소를 제거하고 반환할 수도 있지만 집합의 마지막 요소만 제거합니다.
파이썬3메모: 세트가 순서가 지정되지 않은 경우 pop() 함수를 사용하여 어떤 요소가 팝되는지 결정할 수 있는 방법이 없습니다.
# Python program to demonstrate # Deletion of elements in a Set # Creating a Set set1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print('Initial Set: ') print(set1) # Removing element from the # Set using the pop() method set1.pop() print('
Set after popping an element: ') print(set1) 산출
Initial Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Set after popping an element: {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} Clear() 메소드 사용
세트에서 모든 요소를 제거하려면 Clear() 함수가 사용됩니다.
파이썬3 #Creating a set set1 = set([1,2,3,4,5]) print('
Initial set: ') print(set1) # Removing all the elements from # Set using clear() method set1.clear() print('
Set after clearing all the elements: ') print(set1) 산출
Initial set: {1, 2, 3, 4, 5} Set after clearing all the elements: set() 겨울 왕국 Python의 집합
냉동 세트 Python에서 고정된 집합이나 적용되는 집합에 영향을 주지 않고 결과를 생성하는 메서드와 연산자만 지원하는 불변 객체입니다. 세트의 요소는 언제든지 수정될 수 있지만 고정된 세트의 요소는 생성 후에도 동일하게 유지됩니다.
매개변수가 전달되지 않으면 빈 Frozenset이 반환됩니다.
파이썬3 # Python program to demonstrate # working of a FrozenSet # Creating a Set String = ('G', 'e', 'e', 'k', 's', 'F', 'o', 'r') Fset1 = frozenset(String) print('The FrozenSet is: ') print(Fset1) # To print Empty Frozen Set # No parameter is passed print('
Empty FrozenSet: ') print(frozenset()) 산출
The FrozenSet is: frozenset({'F', 's', 'o', 'G', 'r', 'e', 'k'}) Empty FrozenSet: frozenset() 객체를 세트로 형변환하기
이 예에서는 기울기 , 문자열 및 사전 을 사용하여 세트로 변환됩니다. 세트() 생성자를 사용하여 목록에서 중복 항목을 제거하고 문자열 및 사전 키에서 고유 요소를 추출합니다.
파이썬3 # Typecasting list into set my_list = [1, 2, 3, 3, 4, 5, 5, 6, 2] my_set = set(my_list) print('my_list as a set: ', my_set) # Typecasting string into set my_str = 'techcodeview.com' my_set1 = set(my_str) print('my_str as a set: ', my_set1) # Typecasting dictionary into set my_dict = {1: 'One', 2: 'Two', 3: 'Three'} my_set2 = set(my_dict) print('my_dict as a set: ', my_set2) 산출
my_list as a set: {1, 2, 3, 4, 5, 6} my_str as a set: {'G', 'f', 'r', 'e', 'k', 'o', 's'} my_dict as a set: {1, 2, 3} 예: 모든 기능 구현
이 예에서는 일련의 함수가 일반적인 작업을 보여줍니다. Python의 집합 . 여기에는 집합 생성, 요소 추가 및 제거, 집합 지우기, 집합 합집합, 교차, 차이, 대칭 차이, 부분 집합 및 상위 집합 작업 수행이 포함됩니다.
파이썬3 def create_set(): my_set = {1, 2, 3, 4, 5} print(my_set) def add_element(): my_set = {1, 2, 3, 4, 5} my_set.add(6) print(my_set) def remove_element(): my_set = {1, 2, 3, 4, 5} my_set.remove(3) print(my_set) def clear_set(): my_set = {1, 2, 3, 4, 5} my_set.clear() print(my_set) def set_union(): set1 = {1, 2, 3} set2 = {4, 5, 6} my_set = set1.union(set2) print(my_set) def set_intersection(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.intersection(set2) print(my_set) def set_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.difference(set2) print(my_set) def set_symmetric_difference(): set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} my_set = set1.symmetric_difference(set2) print(my_set) def set_subset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} subset = set2.issubset(set1) print(subset) def set_superset(): set1 = {1, 2, 3, 4, 5} set2 = {2, 3, 4} superset = set1.issuperset(set2) print(superset) if __name__ == '__main__': create_set() add_element() remove_element() clear_set() set_union() set_intersection() set_difference() set_symmetric_difference() set_subset() set_superset() 산출
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} {1, 2, 4, 5} set() {1, 2, 3, 4, 5, 6} {4, 5} {1, 2, 3} {1, 2, 3, 6, 7, 8} True True Python에서 Set의 장점
- 독특한 요소 : 세트는 고유한 요소만 포함할 수 있으므로 데이터 컬렉션에서 중복 항목을 제거하는 데 유용할 수 있습니다.
- 빠른 회원 테스트 : 세트는 빠른 멤버십 테스트에 최적화되어 있으므로 값이 컬렉션에 있는지 여부를 결정하는 데 유용할 수 있습니다.
- 수학적 집합 연산: 집합은 데이터 집합 작업에 유용할 수 있는 합집합, 교집합, 차이와 같은 수학적 집합 연산을 지원합니다.
- 변하기 쉬운 : 세트는 변경 가능합니다. 즉, 세트가 생성된 후 세트에서 요소를 추가하거나 제거할 수 있습니다.
단점 Python의 집합
- 정렬되지 않은 : 세트는 순서가 없습니다. 즉, 세트에 있는 데이터의 순서를 신뢰할 수 없습니다. 이로 인해 특정 순서로 데이터에 액세스하거나 데이터를 처리하는 것이 어려워질 수 있습니다.
- 제한된 기능: 세트는 Append() 또는 Pop()과 같은 메소드를 지원하지 않으므로 목록에 비해 기능이 제한됩니다. 이로 인해 세트에 저장된 데이터를 수정하거나 조작하기가 더 어려워질 수 있습니다.
- 메모리 사용량: 세트는 특히 소규모 데이터 세트의 경우 목록보다 더 많은 메모리를 소비할 수 있습니다. 이는 세트의 각 요소가 해시 값을 저장하기 위해 추가 메모리가 필요하기 때문입니다.
- 덜 일반적으로 사용됨: 집합은 Python의 목록 및 사전보다 덜 일반적으로 사용됩니다. 이는 집합 작업에 사용할 수 있는 리소스나 라이브러리가 더 적다는 것을 의미합니다. 이로 인해 문제에 대한 해결책을 찾거나 디버깅에 대한 도움을 받기가 더 어려워질 수 있습니다.
전반적으로 세트는 Python에서 유용한 데이터 구조가 될 수 있습니다. 특히 중복 항목을 제거하거나 빠른 멤버 자격 테스트를 수행하는 데 유용합니다. 그러나 순서가 부족하고 기능이 제한되어 목록이나 사전보다 다용도가 떨어질 수도 있으므로 Python 프로그램에서 사용할 데이터 구조를 결정할 때 집합 사용의 장점과 단점을 신중하게 고려하는 것이 중요합니다.
Python에서 메서드 설정
| 기능 | 설명 |
|---|---|
| 추가하다() | 세트에 요소를 추가합니다. |
| 제거하다() | 세트에서 요소를 제거합니다. 요소가 세트에 없으면 KeyError를 발생시킵니다. |
| 분명한() | 세트에서 모든 요소를 제거합니다. |
| 복사() | 세트의 얕은 복사본을 반환합니다. |
| 팝() | 임의의 집합 요소를 제거하고 반환합니다. 세트가 비어 있으면 KeyError 발생 |
| 업데이트() | 자신과 다른 사람의 합집합으로 집합을 업데이트합니다. |
| 노동 조합() | 새 집합의 집합 합집합을 반환합니다. |
| 차이점() | 두 개 이상의 집합의 차이를 새 집합으로 반환합니다. |
| 차이_업데이트() | 이 세트에서 다른 세트의 모든 요소를 제거합니다. |
| 버리다() | 구성원인 경우 집합에서 요소를 제거합니다. (요소가 세트에 없으면 아무 작업도 수행하지 않음) |
| 교차점() | 두 집합의 교집합을 새 집합으로 반환합니다. |
| 교차로_업데이트() | 세트 자체와 다른 세트의 교차점을 업데이트합니다. |
| isdisjoint() | 두 세트에 널 교집합이 있는 경우 True를 반환합니다. |
| issubset() | 다른 세트에 이 세트가 포함되어 있으면 True를 반환합니다. |
| 슈퍼세트() | 이 세트에 다른 세트가 포함되어 있으면 True를 반환합니다. |
| 대칭_차이() | 두 집합의 대칭 차이를 새 집합으로 반환합니다. |
| 대칭_차이_업데이트() | 자신과 다른 대칭 차이로 집합을 업데이트합니다. |
Python 세트에 관한 최근 기사
프로그램 설정
- 모든 모음을 포함하는 문자열을 받아들이는 프로그램
- 세트를 사용하여 세 목록에서 공통 요소를 찾는 Python 프로그램
- 두 목록에서 누락된 값과 추가 값 찾기
- 두 세트로 구성된 완전한 문자열 쌍
- 주어진 문자열이 헤테로그램인지 아닌지 확인
- 세트의 최대값과 최소값
- 세트에서 항목 제거
- Python 중복된 배열에서 손실된 요소를 찾기 위해 차이 설정
- Counter를 사용하여 고유 요소가 있는 하위 집합의 최소 수
- 두 목록에 하나 이상의 공통 요소가 있는지 확인하십시오.
- 주어진 문자열의 집합을 사용하여 모음 수를 계산하는 프로그램
- 두 목록의 차이점
- 문자열이 파나그램인지 확인하도록 Python이 설정되었습니다.
- Python 집합 연산(합집합, 교집합, 차이 및 대칭 차이)
- Python에서 일반적이지 않은 문자가 포함된 문자열 연결
- 빈도가 동일해질 수 있는지 확인하는 Python 사전, 세트 및 카운터
- Python Pangram 검사에서 Set() 사용
- n 배열의 합집합을 수행하도록 Python에서 update()를 설정합니다.
유용한 링크
- Python 프로그램의 출력 - 세트
- Python 세트에 관한 최근 기사
- 객관식 질문 – Python
- Python 카테고리의 모든 기사