πŸ” Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ мноТСства Π² Python?

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python Π½ΡƒΠΆΠ½Ρ‹ для хранСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ порядка.

Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния Π² спискС ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ мноТСствами, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ объСдинСниС, пСрСсСчСниС ΠΈ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:


# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мноТСства
my_set = {1, 2, 3, 4, 4, 5}
print(my_set)  # Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 3, 4, 5}

# Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² мноТСство
my_set.add(6)
print(my_set)  # Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 3, 4, 5, 6}

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия элСмСнта Π² мноТСствС
print(3 in my_set)  # Π’Ρ‹Π²ΠΎΠ΄: True

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· мноТСства
my_set.remove(4)
print(my_set)  # Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 3, 5, 6}
    

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ мноТСства Π² Python

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° - это ваТная структура Π΄Π°Π½Π½Ρ‹Ρ… Π² Python, которая позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Π±Π΅Π· порядка. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования.

1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²

Одно ΠΈΠ· основных прСимущСств мноТСств - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ удалСния Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΌΠΎΠΆΠ½ΠΎ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС элСмСнты Π² мноТСство ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ.


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мноТСства
numbers = [1, 2, 3, 4, 3, 2, 1]
unique_numbers = set(numbers)
print(unique_numbers)
# Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 3, 4}
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм список с нСсколькими ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ значСниями. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² мноТСство ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, Π° Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚.

2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° принадлСТности

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ элСмСнта. Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ эффСктивный способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, находится Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ принадлСТности элСмСнта
fruits = {'apple', 'banana', 'orange'}
print('apple' in fruits)
# Π’Ρ‹Π²ΠΎΠ΄: True

print('grape' in fruits)
# Π’Ρ‹Π²ΠΎΠ΄: False
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм мноТСство Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ² ΠΈ провСряСм, содСрТит Π»ΠΈ ΠΎΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты. Если элСмСнт присутствуСт, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ True, ΠΈΠ½Π°Ρ‡Π΅ - False.

3. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ мноТСство матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ объСдинСниС, пСрСсСчСниС, Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΈ симмСтричСская Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими мноТСствами ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ мноТСства Π½Π° основС логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ мноТСствами
set_A = {1, 2, 3, 4}
set_B = {3, 4, 5, 6}

# ОбъСдинСниС мноТСств
union = set_A.union(set_B)
print(union)
# Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 3, 4, 5, 6}

# ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ мноТСств
intersection = set_A.intersection(set_B)
print(intersection)
# Π’Ρ‹Π²ΠΎΠ΄: {3, 4}

# Π Π°Π·Π½ΠΎΡΡ‚ΡŒ мноТСств
difference = set_A.difference(set_B)
print(difference)
# Π’Ρ‹Π²ΠΎΠ΄: {1, 2}

# БиммСтричСская Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ мноТСств
symmetric_difference = set_A.symmetric_difference(set_B)
print(symmetric_difference)
# Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 5, 6}
    

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ мноТСствами. ΠœΡ‹ объСдиняСм, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ пСрСсСчСниС, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ. КаТдая опСрация Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ мноТСство.

4. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ поиск ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python основаны Π½Π° Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поиска ΠΈ удалСния ΠΎΡ‡Π΅Π½ΡŒ эффСктивными. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ списков, Π³Π΄Π΅ поиск элСмСнта ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ врСмя O(n), поиск Π² мноТСствах выполняСтся Π·Π° врСмя O(1).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, мноТСства быстро ΡƒΠ΄Π°Π»ΡΡŽΡ‚ элСмСнты ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° remove() ΠΈΠ»ΠΈ discard().


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния элСмСнта ΠΈΠ· мноТСства
fruits = {'apple', 'banana', 'orange'}
fruits.remove('apple')
print(fruits)
# Π’Ρ‹Π²ΠΎΠ΄: {'banana', 'orange'}

fruits.discard('banana')
print(fruits)
# Π’Ρ‹Π²ΠΎΠ΄: {'orange'}
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ удаляСм элСмСнты ΠΈΠ· мноТСства Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² remove() ΠΈ discard(). Оба ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΡƒΠ΄Π°Π»ΡΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ элСмСнт, Π½ΠΎ Ссли элСмСнт отсутствуСт, ΠΌΠ΅Ρ‚ΠΎΠ΄ remove() Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ discard() Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

5. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС элСмСнты Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Π² мноТСство ΠΈ сравнитС Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ с исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ.


# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
numbers = [1, 2, 3, 4, 1, 2, 3]
unique_check = len(set(numbers)) == len(numbers)
print(unique_check)
# Π’Ρ‹Π²ΠΎΠ΄: False

names = ['Alice', 'Bob', 'Charlie']
unique_check = len(set(names)) == len(names)
print(unique_check)
# Π’Ρ‹Π²ΠΎΠ΄: True
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ провСряСм ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов Π² спискС чисСл ΠΈ спискС ΠΈΠΌΠ΅Π½. Если Π΄Π»ΠΈΠ½Π° мноТСства Ρ€Π°Π²Π½Π° Π΄Π»ΠΈΠ½Π΅ исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ всС элСмСнты ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python - это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ принадлСТности, выполнСния матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ эффСктивного поиска ΠΈ удалСния. Они ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ мноТСство Π·Π°Π΄Π°Ρ‡ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π°.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

31 ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… set

Python | Π£Ρ€ΠΎΠΊ 7: ΠšΠΎΡ€Ρ‚Π΅ΠΆ ΠΈ мноТСства

Python с нуля. Π£Ρ€ΠΎΠΊ 11 | ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π°

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

🎨 Как Π·Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ turtle?

stderr python Ρ‡Ρ‚ΠΎ это: ΠΏΠΎΠ»Π½ΠΎΠ΅ объяснСниС ΠΈ использованиС

πŸ’‘ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡ‚Π΅ основы Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² языкС программирования Python

πŸ” Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ мноТСства Π² Python?

πŸ“· Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ python: простой способ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV

Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Python Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (CMD)?

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ порядковый Π½ΠΎΠΌΠ΅Ρ€ Π±ΡƒΠΊΠ²Ρ‹ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ python πŸ” πŸ