Python에서 집합 집합 만들기
프로그래머로서 데이터 구조에 대한 좋은 지식이 있어야 합니다. 컴퓨터 과학에는 배열과 집합이 매우 이해하기 쉬운 데이터 구조가 많이 있습니다. 이 기사는 데이터 구조에 관한 것이 아니므로 깊이 들어가지 않고 Set에 대해 구체적으로 이야기하겠습니다.
파이썬에서는 배열의 배열이나 목록의 목록을 만들 수 있습니다. 그러나 세트의 경우에는 그렇지 않습니다. Python에서는 집합 집합을 만들 수 없습니다. 당신은 그것을 믿지 않습니까? 다음 코드를 시도하십시오.
print({{1, 2}, {2, 3}})
위의 코드는 다음과 같은 오류를 발생시킵니다.
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: unhashable type: 'set'
세트는 변경 가능하므로 해시할 수 없습니다. 세트는 고유성을 유지하고 중복 값을 거부하기 위해 해시 가능한 값이 필요하기 때문에 이 방법으로 세트 세트를 생성할 수 없습니다. 대신 우리는 몇 가지 다른 접근 방식을 따라야 합니다.
Mutable은 데이터 구조의 내용을 변경할 수 있음을 의미하고 immutable은 데이터 구조의 내용을 변경할 수 없음을 의미합니다. 변경 가능한 데이터 구조의 몇 가지 예는 목록
, 집합
및 사전
입니다. 그리고 불변 데이터 구조의 몇 가지 예는 strings
, frozenset
및 tuples
입니다.
Hashable은 데이터 구조가 메모리 내부에서 고유한 문자열로 표현될 수 있음을 의미하고, unhashable은 데이터 구조가 메모리 내에서 고유한 문자열로 표현될 수 없음을 의미합니다.
Python에서 frozenset
을 사용하여 세트 세트 생성
‘frozenset’은 Python에 미리 빌드된 집합 유형입니다. ‘동결 집합’과 ‘집합’은 고유한 값을 저장하고 추가된 중복 값을 거부하는 동일한 기능을 수행합니다. 그러나 ‘frozenset’은 변경 불가능하고 해시 가능하지만 ‘set’은 변경 가능하고 해시 불가능합니다. frozenset
은 변경할 수 없으므로 사전 내부의 키로 사용할 수 있고 set
내부에 저장할 수 있습니다. set
은 변경할 수 없는 값만 저장할 수 있기 때문입니다. 파이썬 코드로 이것을 더 잘 이해합시다.
a = set([frozenset([1, 2]), frozenset([2, 3]), frozenset([3, 4])])
print(a)
위 코드의 출력은 다음과 같습니다.
{frozenset({3, 4}), frozenset({2, 3}), frozenset({1, 2})}
frozenset
에 대한 자세한 내용은 여기 Python 공식 문서를 참조하십시오.