Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 세트:가이드

종종 데이터로 작업할 때 중복 값을 포함할 수 없고 값을 변경할 수 없는 데이터 목록을 저장하고 싶을 것입니다. 예를 들어, 식료품점에서 구매 ID 목록을 만드는 경우 각 ID가 고유하고 다른 사람이 목록의 값을 변경할 수 없도록 하고 싶을 것입니다.

이것이 Python set 객체가 들어오는 곳입니다. 집합은 고유한 값만 포함할 수 있는 정렬되지 않은 항목 모음입니다.

이 자습서에서는 예제를 참조하여 Python 집합의 기본 사항과 집합에서 값 추가 및 제거와 같은 일반적인 작업을 수행하는 방법에 대해 설명합니다.

파이썬 세트

Python 내장 집합 데이터 구조는 수학의 집합 개념과 유사합니다.

Python 세트는 0개 이상의 요소를 포함할 수 있으며 세트의 각 요소에 대해 정의된 순서가 없습니다. 세트 내에 저장된 모든 요소는 고유하므로 중복이 존재할 수 없으며 세트의 각 개별 값을 변경할 수 없습니다.

집합의 개별 값은 변경할 수 없지만 집합 자체는 변경할 수 있습니다. 이는 세트에서 항목을 추가하거나 제거할 수 있음을 의미합니다.

집합 구조는 집합에 저장한 데이터로 작업하는 데 사용할 수 있는 수학적 연산이 많기 때문에 유용합니다.

파이썬 세트 생성

Python에서 집합은 쉼표로 구분된 항목(또는 "요소") 목록으로 정의됩니다. 그런 다음 목록은 중괄호({})로 묶입니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

Python 세트는 항목 수에 제한 없이 저장할 수 있으며 세트 내의 각 항목은 다른 데이터 유형을 사용할 수 있습니다. 따라서 집합은 정수 또는 문자열 또는 문자열, 부동 소수점 및 튜플을 모두 저장할 수 있습니다. 그러나 집합은 다른 집합, 사전 또는 목록과 같은 변경 가능한 데이터 유형을 저장할 수 없습니다.

한 학생이 영어 수업을 위해 제출한 숙제 목록을 저장하는 집합을 만들고 싶다고 가정합니다. 다음 코드를 사용하여 이 세트를 만들 수 있습니다.

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
print(assignments)

코드는 다음을 반환합니다.

{'워크시트 #5', '워크시트 #4', '워크시트 #7', '주제 검토 끝 #2'}

코드에서 assignments라는 세트를 정의했습니다. 네 가지 값이 있습니다. 그런 다음 콘솔에 할당 세트의 내용을 인쇄했습니다. 세트는 특정 순서로 항목을 저장하지 않기 때문에 값이 임의의 순서로 반환되는 것을 볼 수 있습니다.

세트 변경

집합을 만든 후에는 집합에 있는 항목의 값을 변경할 수 없습니다. 그러나 세트에 항목을 추가하거나 세트에서 제거할 수 있습니다.

세트에 항목 추가

Python 세트에 요소를 추가하려면 add() 방법. 학생이 Worksheet #8을 제출했다고 가정해 보겠습니다. 그리고 학생이 제출한 과제를 추적하기 위해 세트를 업데이트하고 싶습니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}

assignments.add("Worksheet #8")
print(assignments)

코드는 다음을 반환합니다.

{'워크시트 #8', '워크시트 #4', '워크시트 #5', '주제 검토 끝 #2', '워크시트 #7'}

보시다시피 Worksheet #8 우리 세트에 추가되었습니다.

또한 세트에 여러 항목을 추가하려면 update()를 사용할 수 있습니다. 방법. update() 이 메서드는 집합에 추가하려는 항목 목록을 매개변수로 수락한 다음 해당 항목을 집합에 추가합니다.

한 학생이 워크시트 #8과 #9를 모두 제출했다고 가정합니다. 이 코드를 사용하여 전달되는 이러한 새 할당을 반영하도록 집합을 변경할 수 있습니다.

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}

assignments.update(["Worksheet #8", "Worksheet #9"])
print(assignments)

코드는 다음을 반환합니다.

{'워크시트 #9', '주제 검토 #2 끝', '워크시트 #8', '워크시트 #7', '워크시트 #4', '워크시트 #5'}

이제 우리 세트에는 두 개의 새로운 값이 포함됩니다. Worksheet #8Worksheet #9 .

세트에서 요소 제거

세트에서 요소를 제거하려면 discard()를 사용할 수 있습니다. 또는 remove() .

discard() 함수는 집합에서 항목을 제거하고 항목이 집합에 없으면 아무 것도 반환하지 않습니다. remove() 함수는 집합에서 항목을 제거하려고 시도하고 해당 항목이 없으면 오류가 발생합니다.

Worksheet #9를 제거한다고 가정해 보겠습니다. 과제를 다시 수행하라는 요청을 받았기 때문에 학생의 숙제 기록에서. 다음 코드를 사용하여 그렇게 할 수 있습니다.

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}

assignments.discard("Worksheet #9")
print(assignments)

코드는 다음을 반환합니다.

{'주제 검토 #2 끝', '워크시트 #5', '워크시트 #4', '워크시트 #8', '워크시트 #7'}

Worksheet #9 값이 우리 세트에서 제거되었습니다. discard()를 사용하여 이 작업을 수행했습니다. 방법.

세트 지우기

세트를 지우려면 clear()를 사용할 수 있습니다. 방법. 학년말이고 더 이상 정보를 저장할 필요가 없기 때문에 학생의 과제 기록을 지우고 싶다고 가정합니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}

assignments.clear()
print(assignments)

우리 코드는 {}를 반환합니다. 이것은 우리의 빈 집합을 반영합니다.

세트 길이 반환

한 세트에 몇 개의 항목이 저장되어 있는지 알아보려면 len() 를 사용할 수 있습니다. 방법.

한 학생이 제출한 숙제 수를 알고 싶다고 가정해 보겠습니다. 다음 코드를 사용하여 확인할 수 있습니다.

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
print(len(assignments))

6. 코드에서 먼저 assignments라는 집합을 선언합니다. . 그런 다음 len()을 사용합니다. assignments에 얼마나 많은 항목이 저장되어 있는지 알아내는 메소드 세트.

Python 집합 작업

집합을 사용하여 데이터를 저장하는 이점 중 하나는 집합이 수학적 집합 연산을 지원한다는 것입니다. 세 가지 주요 집합 작업이 어떻게 작동하는지 살펴보겠습니다.

이러한 집합 작업은 변경되지 않습니다. 세트의 내용. 대신 기존 집합에 대해 계산을 수행합니다.

연합 설정

union() 메서드를 사용하면 두 집합에서 모든 요소 집합을 만들 수 있습니다.

병합하려는 학생의 과제 목록이 두 개 있다고 가정합니다. 한 목록에는 학생의 숙제에 대한 데이터가 포함되어 있고 다른 목록에는 학생이 완료한 에세이 과제 목록이 포함되어 있습니다. 다음 코드를 사용하여 이러한 목록을 병합할 수 있습니다.

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}

homework = assignments.union(essays)
print(homework)

코드는 다음을 반환합니다.

{'워크시트 7번', '에세이 #2', '워크시트 #4', '에세이 #1', '워크시트 #5'}

우리 코드에서는 union()을 사용합니다. 두 세트를 병합하는 방법입니다. 새로 병합된 집합의 값을 homework 변수에 할당합니다. . 그런 다음 homework의 값을 출력했습니다. 변하기 쉬운.

또는 다음 코드를 사용할 수도 있습니다.

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}

print(assignments | essays)

"|" 연산자는 합집합 집합 연산을 수행합니다. 코드는 병합된 집합을 반환합니다.

{'에세이 2번', '워크시트 #4', '워크시트 #5', '에세이 #1', '워크시트 #7'}

교차로 설정

intersection() 메소드를 사용하면 두 세트 간에 공통적인 요소 목록을 생성할 수 있습니다.

한 학생이 제출한 에세이 목록과 발행된 에세이 목록이 있다고 가정합니다. 어떤 학생이 아직 제출하지 않은 에세이를 알고 싶다면 교차 방법을 수행할 수 있습니다.

사용할 코드는 다음과 같습니다.

essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}

due = essays_handed_in.intersection(essays_issued)
print(due)

코드는 다음을 반환합니다.

{'에세이 1번', '에세이 2번'}

이 예에서는 intersection()을 사용합니다. essays_handed_in에 있는 모든 요소를 ​​찾는 방법 및 essays_issued 세트. 교차 연산의 결과를 due 변수에 할당합니다. , 그런 다음 콘솔에 인쇄합니다.

또한 &를 사용할 수 있습니다. 연산자를 사용하여 교차 집합 연산을 수행합니다. 따라서 이전의 두 세트에서 교차를 수행하려면 다음 코드를 사용할 수 있습니다.

essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}

print(essays_handed_in & essays_issued)

코드는 다음을 반환합니다.

{'에세이 1번', '에세이 2번'}

차이 설정

difference() 메소드를 사용하면 다른 세트에는 없는 한 세트에 있는 요소를 찾을 수 있습니다.

한 학생이 제출했지만 아직 채점되지 않은 모든 에세이 목록을 생성하고 싶다고 가정해 보겠습니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}

final = essays_handed_in.difference(essays_graded)
print(final)

코드는 다음을 반환합니다.

{"에세이 #2"}

이 코드에서는 difference()를 사용했습니다. essays_handed_in의 차이점을 찾는 방법 및 essays_graded 세트. 또는 -를 사용할 수 있습니다. 연산자는 다음과 같습니다.

essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}
print(essays_handed_in - essays_graded)

코드는 다음을 반환합니다.

{"에세이 #2"}

동일한 결과가 코드에서 반환됩니다. 그러나 difference() 를 사용하는 대신 set 메소드에서 -를 사용했습니다. 연산자는 두 집합 간의 차이를 찾기 위해 검사를 수행합니다.

결론

Python 집합 데이터 구조를 사용하면 정렬되지 않은 항목 컬렉션을 저장할 수 있습니다.

세트의 각 항목은 고유해야 하므로 중복이 있을 수 없으며 세트의 내용은 세트에 추가되면 변경할 수 없습니다.

이 자습서에서는 예제를 참조하여 Python 집합의 기본 사항과 집합에서 제공하는 주요 작업에 대해 설명했습니다.

우리는 세트로 할 수 있는 일의 표면만 보았을 뿐입니다. 아직 탐색해야 할 것이 더 많이 있습니다. 하지만 세트를 효과적으로 사용하기 위해 알아야 할 주요 기술은 다루었습니다. 이제 Python set() 사용을 시작할 준비가 되었습니다. 전문가와 같은 방법!


Python은 데이터 분석에서 웹 개발에 이르기까지 전 세계의 전문 개발 환경에서 사용됩니다. 다운로드 무료 Career Karma 앱 오늘 Python 프로그래밍의 경력 경로에 대해 자세히 알아보세요.