세트

Python의 집합은 다른 언어와 유사하며 반복되지 않는 요소의 순서가 지정되지 않은 집합입니다. 기본 기능에는 관계 테스트 및 중복 요소 제거가 포함됩니다. Set은 dict와 유사하지만 set은 값을 저장하지 않습니다.

1. 세트 생성

세트를 생성하려면 입력 세트로 목록을 제공해야 합니다

set1=set([123,456,789])
print(set1)

출력 결과:

{456, 123, 789}

전달된 매개 변수 [123,456,789]는 목록이며 표시되는 {456, 123, 789} 이 세트 안에는 3개의 요소 456, 123, 789가 있다는 점을 말씀드리고 싶습니다. 표시 순서가 매개변수 목록의 요소 순서와 일치하지 않습니다. 세트는 순서가 없습니다.

한 가지 더, 출력 결과가 중괄호 안에 있음을 관찰했습니다. 이전 연구를 통해 tuple(튜플)은 괄호를 사용하고, list(리스트)는 대괄호를 사용하고, dict(딕셔너리)는 중괄호를 사용한다는 것을 알 수 있습니다. dict도 순서가 없지만 dict는 키-값 쌍을 저장하는 반면 set은 키 값만 저장하는 것으로 이해될 수 있습니다.

dict(사전)를 생성할 때 중복 키는 후속 키-값 값으로 덮어쓰이고 중복 요소는 집합에서 자동으로 필터링된다는 점을 기억하세요.

set1=set([123,456,789,123,123])
print(set1)

출력 결과:

{456, 123, 789}

2. set에 요소 추가

add(key) 메소드를 통해 set에 요소를 추가할 수 있지만, 반복적으로 추가할 수는 있지만 결과는 없습니다.

set1=set([123,456,789])
print(set1)
set1.add(100)
print(set1)
set1.add(100)
print(set1)

출력 결과는 다음과 같습니다. :

{456, 123, 789}
{456, 123, 100, 789}
{456, 123, 100, 789}

3. Set은 요소를 삭제합니다

remove(key) 메소드를 통해 set의 요소를 삭제할 수 있습니다

set1=set([123,456,789])
print(set1)
set1.remove(456)
print(set1)

출력 결과:

{456, 123, 789}
{123, 789}

4 set을 사용하면 됩니다. 반복되지 않는 요소의 순서가 지정되지 않은 집합이므로 두 집합은 수학적 의미에서 결합, 교차, 차이 및 기타 연산을 수행할 수 있습니다.

예: edac59887302095e82b950a78cdc3c1.png

set1=set('hello')
set2=set(['p','y','y','h','o','n'])
print(set1)
print(set2)
# 交集 (求两个 set 集合中相同的元素)
set3=set1 & set2
print('\n交集 set3:')
print(set3)
# 并集 (合并两个 set 集合的元素并去除重复的值)
set4=set1 | set2
print('\n并集 set4:')
print(set4)
# 差集
set5=set1 - set2
set6=set2 - set1
print('\n差集 set5:')
print(set5)
print('\n差集 set6:')
print( set6)
# 去除海量列表里重复元素,用 hash 来解决也行,只不过感觉在性能上不是很高,用 set 解决还是很不错的
list1 = [111,222,333,444,111,222,333,444,555,666]  
set7=set(list1)
print('\n去除列表里重复元素 set7:')
print(set7)

실행 결과:

{'h', 'l', 'e', 'o'}
{'h', 'n', 'o', 'y', 'p'}
交集 set3:
{'h', 'o'}
并集 set4:
{'h', 'p', 'n', 'e', 'o', 'y', 'l'}
差集 set5:
{'l', 'e'}
差集 set6:
{'p', 'y', 'n'}
去除列表里重复元素 set7:
{555, 333, 111, 666, 444, 222}
지속적인 학습
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~