산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 세트

파이썬 세트

이 자습서에서는 Python 집합에 대한 모든 것을 배웁니다. 생성 방법, 요소 추가 또는 제거, Python의 집합에서 수행되는 모든 작업

동영상:Python의 집합

세트는 정렬되지 않은 항목 모음입니다. 모든 세트 요소는 고유하며(중복되지 않음) 변경 불가능해야 합니다(변경할 수 없음).

그러나 집합 자체는 변경 가능합니다. 항목을 추가하거나 제거할 수 있습니다.

집합은 합집합, 교집합, 대칭차 등과 같은 수학적 집합 연산을 수행하는 데에도 사용할 수 있습니다.

<시간>

파이썬 세트 생성

중괄호 {} 안에 모든 항목(요소)을 배치하여 집합이 생성됩니다. , 쉼표로 구분하거나 기본 제공 set() 사용 기능.

여러 항목을 가질 수 있으며 다양한 유형(정수, 부동 소수점, 튜플, 문자열 등)이 될 수 있습니다. 그러나 집합은 목록, 집합 또는 사전과 같은 변경 가능한 요소를 요소로 가질 수 없습니다.

# Different types of sets in Python
# set of integers
my_set = {1, 2, 3}
print(my_set)

# set of mixed datatypes
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

출력

{1, 2, 3}
{1.0, (1, 2, 3), 'Hello'}

다음 예도 시도해 보십시오.

# set cannot have duplicates
# Output: {1, 2, 3, 4}
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)

# we can make set from a list
# Output: {1, 2, 3}
my_set = set([1, 2, 3, 2])
print(my_set)

# set cannot have mutable items
# here [3, 4] is a mutable list
# this will cause an error.

my_set = {1, 2, [3, 4]}

출력

{1, 2, 3, 4}
{1, 2, 3}
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    my_set = {1, 2, [3, 4]}
TypeError: unhashable type: 'list'
<시간>

빈 집합을 만드는 것은 약간 까다롭습니다.

빈 중괄호 {} 파이썬에서 빈 사전을 만듭니다. 요소 없이 집합을 만들기 위해 set()을 사용합니다. 인수가 없는 함수입니다.

# Distinguish set and dictionary while creating empty set

# initialize a with {}
a = {}

# check data type of a
print(type(a))

# initialize a with set()
a = set()

# check data type of a
print(type(a))

출력

<class 'dict'>
<class 'set'>
<시간>

Python에서 집합 수정

세트는 변경 가능합니다. 그러나 순서가 지정되지 않았기 때문에 인덱싱은 의미가 없습니다.

인덱싱이나 슬라이싱을 사용하여 집합의 요소에 액세스하거나 변경할 수 없습니다. 설정 데이터 유형이 지원하지 않습니다.

add()을 사용하여 단일 요소를 추가할 수 있습니다. 메소드 및 update()을 사용하는 여러 요소 방법. update() 메서드는 튜플, 목록, 문자열 또는 기타 집합을 인수로 사용할 수 있습니다. 모든 경우에 중복이 방지됩니다.

# initialize my_set
my_set = {1, 3}
print(my_set)

# my_set[0]
# if you uncomment the above line
# you will get an error
# TypeError: 'set' object does not support indexing

# add an element
# Output: {1, 2, 3}
my_set.add(2)
print(my_set)

# add multiple elements
# Output: {1, 2, 3, 4}
my_set.update([2, 3, 4])
print(my_set)

# add list and set
# Output: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4, 5], {1, 6, 8})
print(my_set)

출력

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}
<시간>

세트에서 요소 제거

discard() 메소드를 사용하여 특정 항목을 세트에서 제거할 수 있습니다. 및 remove() .

둘의 유일한 차이점은 discard() 요소가 집합에 없으면 함수는 집합을 변경하지 않고 그대로 둡니다. 반면에 remove() 함수는 이러한 조건에서 오류를 발생시킵니다(요소가 집합에 없는 경우).

다음 예에서 이를 설명합니다.

# Difference between discard() and remove()

# initialize my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)

# discard an element
# Output: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)

# remove an element
# Output: {1, 3, 5}
my_set.remove(6)
print(my_set)

# discard an element
# not present in my_set
# Output: {1, 3, 5}
my_set.discard(2)
print(my_set)

# remove an element
# not present in my_set
# you will get an error.
# Output: KeyError

my_set.remove(2)

출력

{1, 3, 4, 5, 6}
{1, 3, 5, 6}
{1, 3, 5}
{1, 3, 5}
Traceback (most recent call last):
  File "<string>", line 28, in <module>
KeyError: 2

마찬가지로 pop()을 사용하여 항목을 제거하고 반환할 수 있습니다. 방법.

set은 정렬되지 않은 데이터 유형이므로 어떤 항목이 팝될지 결정할 방법이 없습니다. 완전히 임의적입니다.

clear()를 사용하여 세트에서 모든 항목을 제거할 수도 있습니다. 방법.

# initialize my_set
# Output: set of unique elements
my_set = set("HelloWorld")
print(my_set)

# pop an element
# Output: random element
print(my_set.pop())

# pop another element
my_set.pop()
print(my_set)

# clear my_set
# Output: set()
my_set.clear()
print(my_set)

print(my_set)

출력

{'H', 'l', 'r', 'W', 'o', 'd', 'e'}
H
{'r', 'W', 'o', 'd', 'e'}
set()
<시간>

파이썬 세트 작업

집합은 합집합, 교집합, 차 및 대칭 차와 같은 수학적 집합 연산을 수행하는 데 사용할 수 있습니다. 연산자나 메서드를 사용하여 이 작업을 수행할 수 있습니다.

다음 작업에 대해 다음 두 세트를 고려해 보겠습니다.

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

통합 설정

<그림>

A의 연합 및 B 두 집합의 모든 요소 집합입니다.

통합은 |을 사용하여 수행됩니다. 운영자. union()을 사용하여 동일한 작업을 수행할 수 있습니다. 방법.

# Set union method
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use | operator
# Output: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

출력

{1, 2, 3, 4, 5, 6, 7, 8}

Python 셸에서 다음 예제를 시도하십시오.

# use union function
>>> A.union(B)
{1, 2, 3, 4, 5, 6, 7, 8}

# use union function on B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}
<시간>

교차로 설정

<그림>

A의 교차점 및 B 두 세트에 공통적인 요소의 세트입니다.

교차는 &을 사용하여 수행됩니다. 운영자. intersection()를 사용하여 동일한 작업을 수행할 수 있습니다. 방법.

# Intersection of sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use & operator
# Output: {4, 5}
print(A & B)

출력

{4, 5}

Python 셸에서 다음 예제를 시도하십시오.

# use intersection function on A
>>> A.intersection(B)
{4, 5}

# use intersection function on B
>>> B.intersection(A)
{4, 5}
<시간>

차이 설정

<그림>

집합 B의 차이 A 세트에서 (A - B )은 A에만 있는 요소 집합입니다. 하지만 B에는 없습니다. . 마찬가지로 B - A B의 요소 집합입니다. 그러나 A에는 없음 .

차이는 -를 사용하여 수행됩니다. 운영자. difference()을 사용하여 동일한 작업을 수행할 수 있습니다. 방법.

# Difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use - operator on A
# Output: {1, 2, 3}
print(A - B)

출력

{1, 2, 3}

Python 셸에서 다음 예제를 시도하십시오.

# use difference function on A
>>> A.difference(B)
{1, 2, 3}

# use - operator on B
>>> B - A
{8, 6, 7}

# use difference function on B
>>> B.difference(A)
{8, 6, 7}
<시간>

대칭 차이 설정

<그림>

A의 대칭 차이 및 B A의 요소 집합입니다. 및 B 그러나 둘 다에는 없습니다(교차로 제외).

대칭 차이는 ^를 사용하여 수행됩니다. 운영자. symmetric_difference() 메서드를 사용하여 동일한 작업을 수행할 수 있습니다. .

# Symmetric difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use ^ operator
# Output: {1, 2, 3, 6, 7, 8}
print(A ^ B)

출력

{1, 2, 3, 6, 7, 8}

Python 셸에서 다음 예제를 시도하십시오.

# use symmetric_difference function on A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}

# use symmetric_difference function on B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}
<시간>

기타 Python 설정 방법

많은 set 메소드가 있으며 그 중 일부는 위에서 이미 사용했습니다. 다음은 집합 개체와 함께 사용할 수 있는 모든 메서드 목록입니다.

메소드 설명
추가() 세트에 요소 추가
지우기() 세트에서 모든 요소를 ​​제거합니다.
복사() 세트의 복사본을 반환합니다.
차이() 두 개 이상의 집합의 차이를 새 집합으로 반환
차이_업데이트() 이 세트에서 다른 세트의 모든 요소를 ​​제거합니다.
discard() 구성원인 경우 집합에서 요소를 제거합니다. (요소가 집합에 없으면 아무것도 하지 않음)
교차로() 두 집합의 교집합을 새 집합으로 반환
교차로_업데이트() 자신과 다른 것의 교집합으로 집합을 업데이트합니다.
isdisjoint() 반환 True 두 집합에 null 교집합이 있는 경우
issubset() 반환 True 다른 세트가 이 세트를 포함하는 경우
issuperset() 반환 True 이 집합이 다른 집합을 포함하는 경우
팝() 임의의 집합 요소를 제거하고 반환합니다. KeyError 증가 세트가 비어 있는 경우
제거() 세트에서 요소를 제거합니다. 요소가 구성원이 아닌 경우 KeyError 발생
대칭차이() 두 세트의 대칭 차이를 새 세트로 반환
대칭_차이_업데이트() 자신과 다른 것의 대칭적 차이로 집합을 업데이트합니다.
연합() 새 집합에서 집합의 합집합을 반환합니다.
업데이트() 자신과 다른 사람의 합집합으로 집합을 업데이트합니다.
<시간>

기타 세트 작업

멤버십 테스트 설정

in을 사용하여 항목이 세트에 존재하는지 여부를 테스트할 수 있습니다. 키워드.

# in keyword in a set
# initialize my_set
my_set = set("apple")

# check if 'a' is present
# Output: True
print('a' in my_set)

# check if 'p' is present
# Output: False
print('p' not in my_set)

출력

True
False
<시간>

집합을 통한 반복

for를 사용하여 세트의 각 항목을 반복할 수 있습니다. 루프.

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l
<시간>

Set 내장 함수

all()와 같은 내장 함수 , any() , enumerate() , len() , max() , min() , sorted() , sum() 등은 일반적으로 다른 작업을 수행하기 위해 세트와 함께 사용됩니다.

함수 설명
모두() 반환 True 세트의 모든 요소가 true인 경우(또는 세트가 비어 있는 경우).
모든() 반환 True 세트의 요소 중 하나라도 true인 경우. 세트가 비어 있으면 False을 반환합니다. .
열거() 열거 개체를 반환합니다. 세트의 모든 항목에 대한 인덱스와 값을 쌍으로 포함합니다.
len() 세트의 길이(항목 수)를 반환합니다.
최대() 집합에서 가장 큰 항목을 반환합니다.
최소() 세트에서 가장 작은 항목을 반환합니다.
정렬() 집합의 요소에서 새로운 정렬된 목록을 반환합니다(집합 자체를 정렬하지 않음).
합() 집합에 있는 모든 요소의 합계를 반환합니다.
<시간>

파이썬 프로즌셋

Frozenset은 집합의 특성을 가진 새로운 클래스이지만 해당 요소는 한 번 할당되면 변경할 수 없습니다. 튜플은 변경할 수 없는 목록인 반면, frozenset은 변경할 수 없는 집합입니다.

변경 가능한 세트는 해시할 수 없으므로 사전 키로 사용할 수 없습니다. 반면에, frozensets는 해시 가능하며 사전의 키로 사용할 수 있습니다.

Frozenset은 frozenset() 함수를 사용하여 생성할 수 있습니다.

이 데이터 유형은 copy()과 같은 메소드를 지원합니다. , difference() , intersection() , isdisjoint() , issubset() , issuperset() , symmetric_difference()union() . 불변이기 때문에 요소를 추가하거나 제거하는 메소드가 없습니다.

# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Python 셸에서 다음 예제를 시도하십시오.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2})
>>> A | B
frozenset({1, 2, 3, 4, 5, 6})
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'

python

  1. 파이썬 데이터 유형
  2. 파이썬 연산자
  3. 파이썬 통과 문
  4. 파이썬 함수 인수
  5. 파이썬 사전
  6. 파이썬 반복자
  7. 파이썬 클로저
  8. 파이썬 날짜 시간
  9. 파이썬 - 개요
  10. 파이썬 - 숫자