🐍 Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 8: ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со мноТСствами

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС, Ρ‡Π΅ΠΌ списки ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… практичСских Π·Π°Π΄Π°Ρ‡. РасскаТСм ΠΎΠ±ΠΎ всСх особСнностях мноТСств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ – ΠΏΠΎΡ€Π΅ΡˆΠ°Π΅ΠΌ Π·Π°Π΄Π°Ρ‡ΠΊΠΈ.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… set Π² Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проводятся Π½Π°Π΄ мноТСствами Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅:

  • пСрСсСчСниС;
  • объСдинСниС;
  • Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
  • Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ;
  • ΡΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° set ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ рядом особСнностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ ΠΈΡ… ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ мноТСств Π² Python

1. Π’ Python Π΄Π²Π° Π²ΠΈΠ΄Π° мноТСств – ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅, измСняСмоС set ΠΈ Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅, нСизмСняСмоС frozenset. Π—Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ мноТСства нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послС создания, Π½ΠΎ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ объСдинСнию, ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΡŽ ΠΈ разности ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚: Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ frozenset.

2. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСизмСняСмыС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… – строки, числа, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ (Π² любой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² мноТСство список, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈΠ»ΠΈ измСняСмоС мноТСство ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС:

>>> a_set = {[2, 3], [4, 7]}
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: unhashable type: 'list'

НСизмСняСмоС мноТСство frozenset, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ set, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² измСняСмоС мноТСство:

>>> set_a = {1, 2, 3}
>>> set_b = frozenset({4, 5, 6})
>>> set_c = {7, 8, 9, set_a}
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: unhashable type: 'set'
>>> set_c = {7, 8, 9, set_b}
>>> print(set_c)
{8, 9, frozenset({4, 5, 6}), 7}

3. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΎ мноТСствах хранятся Π² нСупорядочСнном Π²ΠΈΠ΄Π΅, ΠΈ ΠΊ Π½ΠΈΠΌ нСльзя ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ индСксу:

>>> set_a = set('123')
>>> print(set_a)
{'3', '2', '1'}
>>> print(set[1])
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: 'type' object is not subscriptable

4. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ элСмСнты мноТСства Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ индСксов, срСзы ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с set Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСльзя:

>>> set_a = {1, 3, 4, 5, 2, 9, 7}
>>> print(set_a[2:5])
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: 'set' object is not subscriptable

5. ВсС элСмСнты мноТСства – ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Π² set ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ; это свойство мноТСств ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ практичСских Π·Π°Π΄Π°Ρ‡:

>>> my_set = {2, 2, 2}
>>> print(my_set)
{2}

6. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅:

>>> set_a = {1, 3, 5}
>>> set_b = {9, 4, 8}
>>> print(set_a + set_b)
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'set' and 'set'
>>> print(set_a * 2)
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'set' and 'int'

7. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ больший объСм памяти, Π½Π΅ΠΆΠ΅Π»ΠΈ списки ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мноТСства для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ с Π»ΠΈΠΌΠΈΡ‚ΠΎΠΌ Π½Π° объСм памяти:

>>> from sys import getsizeof
>>> number = 100500
>>> my_list = list(range(number))
>>> my_tuple = tuple(range(number))
>>> my_set = set(range(number))
>>> my_list_size = getsizeof(my_list)
>>> my_tuple_size = getsizeof(my_tuple)
>>> my_set_size = getsizeof(my_set)
>>> print(f'Π Π°Π·ΠΌΠ΅Ρ€ списка: {round(my_list_size / 1024 / 1024, 3)} Мб')
Π Π°Π·ΠΌΠ΅Ρ€ списка: 0.431 Мб
>>> print(f'Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°: {round(my_tuple_size / 1024 / 1024, 3)} Мб')
Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°: 0.383 Мб
>>> print(f'Π Π°Π·ΠΌΠ΅Ρ€ мноТСства: {round(my_set_size / 1024 / 1024, 3)} Мб')
Π Π°Π·ΠΌΠ΅Ρ€ мноТСства: 2.0 Мб

8. Π₯отя мноТСства Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ больший объСм памяти, Ρ‡Π΅ΠΌ списки ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ сравниваСт врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списком, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ ΠΈ мноТСством с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ количСством элСмСнтов:

from time import time
number = 15000
my_set = set(range(number))
my_list = list(range(number))
my_tuple = tuple(range(number))

t = time()
for i in range(number):
    if i in my_list:
        pass
print(f"ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ со списком: {time() - t} сСкунд")
my_list.clear()

t = time()
for i in range(number):
    if i in my_tuple:
        pass
print(f"ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆeΠΌ: {time() - t} сСкунд")

t = time()
for i in range(number):
    if i in my_set:
        pass
print(f"ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ со мноТСством: {time() - t} сСкунд")
my_set.clear()

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ со списком: 1.810847282409668 сСкунд
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆeΠΌ: 1.6490623950958252 сСкунд
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ со мноТСством: 0.0013110637664794922 сСкунд
πŸπŸŽ“ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собСса ΠΏΠΎ Python
ΠŸΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ свои знания ΠΏΠΎ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собСса ΠΏΠΎ PythonΒ»
🐍🧩 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Python
Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Python для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ PythonΒ»

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мноТСств Π² Python

ΠŸΡƒΡΡ‚ΠΎΠ΅ мноТСство ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ способом, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ set():

>>> my_set = set()
>>> print(type(my_set))
<class 'set'>

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустоС мноТСство с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок {} ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠ²Π°Π» – вмСсто set Π±ΡƒΠ΄Π΅Ρ‚ создан ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ dict:

>>> my_set = {}
>>> print(type(my_set))
<class 'dict'>

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколькими способами.

Бпособ 1: ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ элСмСнтов

Для создания мноТСства Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках:

>>> set_a = {3, 7, 9, 0, 2, 1}
>>> set_b = {'Π°', 'Π±', 'Π²', 'Π³'}
>>> set_c = {'ΠœΠ°ΡΡ‚Π΅Ρ€ ΠΈ ΠœΠ°Ρ€Π³Π°Ρ€ΠΈΡ‚Π°', 450, 1250, 'ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚'}
>>> set_d = {2, 4, 5, (2, 9, 0)}

Бпособ 2: ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° основС символов Π»ΠΈΠ±ΠΎ слов строки:

>>> print(set('Π°Π±Ρ‹Ρ€Π²Π°Π»Π³'))
{'Ρ€', 'Π²', 'Π»', 'Π³', 'Π±', 'Π°', 'Ρ‹'}
>>> print(set('ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python'.split()))
{'ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π°', 'Π²', 'Python'}

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΈΠ· списка:

>>> print(set([3, 6, 4, 5, 5]))
{3, 4, 5, 6}

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π½Π° основС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°:

>>> print(set(('красный', 'синий', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ')))
{'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'красный', 'синий'}

ΠŸΡ€ΠΈ создании мноТСства ΠΈΠ· dict ΠΎΡ‚ словаря останутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ:

>>> print(set({'Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»': 'А123', 'Ρ†Π²Π΅Ρ‚': 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ'}))
{'Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»', 'Ρ†Π²Π΅Ρ‚'}

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ символов строк, число нСльзя автоматичСски Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ мноТСство Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ:

>>> print(set(123))
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: 'int' object is not iterable

Но с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ str ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π±Π΅Π· ошибок:

>>> print(set(str(1812)))
{'8', '2', '1'}
🐍 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° питониста
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° питониста»

Бпособ 3: Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ мноТСств

Как ΠΈ Π² случаС со списками ΠΈ словарями, для создания мноТСств ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

>>> print({i ** 2 for i in range(15)})
{0, 1, 64, 121, 4, 36, 100, 196, 9, 169, 16, 49, 81, 144, 25}

Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ условия:

>>> print({int(i) for i in '3Π²2ΠΎ7Ρ‹Ρ€3Ρ€74Ρ€Ρ‚Ρ€Ρ‡Ρ„Ρ€Π΅ΠΆΡ€4Ρ€Ρ„Ρ„23468795323' if i.isdigit() and int(i) < 7})
{2, 3, 4, 5, 6}

Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π²ΠΎΠ΄ input() ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ord() для возвращСния числового ΠΊΠΎΠ΄Π° символа ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Unicode:

>>> print({ord(i) for i in input() if i.isalpha()})
ewr73694yrhf897349ugg05fhshcvnaWQXXldoaxsd
{81, 87, 88, 97, 99, 100, 101, 102, 103, 104, 108, 110, 111, 114, 115, 117, 118, 119, 120, 121}

Помимо условия if, Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ else:

>>> set_a = {i ** 2 if i % 2 == 0 else i ** 3 for i in (map(int, input().split()))}
2 5 12 13 4 56 71 33 9 10
>>> print(set_a)
{3136, 35937, 4, 100, 144, 16, 2197, 357911, 729, 125}

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ мноТСств Π² Python

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ряд стандартных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΎΠ±Ρ‰ΠΈΡ… для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Python, ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ нСсколько собствСнных, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… для Ρ‚ΠΈΠΏΠ° set. НачнСм с ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π”Π»ΠΈΠ½Π°, сумма, min ΠΈ max элСмСнты

Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со мноТСствами Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ со списками ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ:

>>> set_a = {2, 4, 5, 6, 1, 9, 7, 12}
>>> print(f'ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов: {len(set_a)}, сумма элСмСнтов: {sum(set_a)}')
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов: 8, сумма элСмСнтов: 46
>>> print(f'ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: {min(set_a)}, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: {max(set_a)}')
ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: 1, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт: 12

ΠŸΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ элСмСнта мноТСству

>>> my_set = {'ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°', 'Ρ„ΠΈΠ·ΠΈΠΊΠ°', 'химия'}
>>> print('ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°' in my_set)
True
>>> print('биология' not in my_set)
True

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°

Как ΠΈ Π² случаС с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ сортировки мноТСства Π±ΡƒΠ΄Π΅Ρ‚ список:

>>> numbers = {25, 15, 7, 8, 19, 34, 52, 0, 12, 59, 91, 4}
>>> print(sorted(numbers))
[0, 4, 7, 8, 12, 15, 19, 25, 34, 52, 59, 91]
>>> print(sorted(numbers, reverse=True))
[91, 59, 52, 34, 25, 19, 15, 12, 8, 7, 4, 0]

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ мноТСств

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² == ΠΈ !=:

>>> set_a = {5, 1, 4, 8, 6, 9}
>>> set_b = {6, 2, 5, 9, 7, 10}
>>> print(set_b != set_a)
True

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ > ΠΈ <, Π΄Π°ΡŽΡ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

>>> set_a = {1, 2, 3}
>>> set_b = {4, 5, 6, 7}
>>> print(set_b > set_a)
False

Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сравнСнии мноТСств Python опрСдСляСт, являСтся Π»ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄- ΠΈΠ»ΠΈ надмноТСством Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом – Π½ΠΈΠΆΠ΅):

>>> set_a = {1, 2, 3}
>>> set_b = {1, 2, 3, 4}
>>> print(set_b > set_a)
True

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта

ΠœΠ΅Ρ‚ΠΎΠ΄ add() добавляСт Π²ΠΎ мноТСство Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт:

>>> letters = {'Π°', 'Π±', 'Π²'}
>>> letters.add('Π³')
>>> print(letters)
{'Π³', 'Π²', 'Π°', 'Π±'}

НСсколько элСмСнтов ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for (ΠΌΡ‹ рассмотрим Π΅Π³ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅) ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

>>> set_a = set()
>>> gen = {set_a.add(i) for i in range(12)}
>>> print(set_a)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта

Для удалСния элСмСнта Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

1. remove() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС, Ссли элСмСнт Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½:

>>> my_set = {1, 2, 3}
>>> my_set.remove(2)
>>> print(my_set)
{1, 3}

2. discard() – бСзопасный ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС Π² случаС отсутствия элСмСнта:

>>> my_set = {'красный', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ', 'синий'}
>>> my_set.discard('синий')
>>> print(my_set)
{'красный', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ'}
>>> my_set.discard('Ρ€ΠΎΠ·ΠΎΠ²Ρ‹ΠΉ')
>>> 

3. pop() – Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ списочного ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, удаляСт случайный элСмСнт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

>>> my_set = {2, 4, 6, 1, 12}
>>> print(my_set.pop())
1

4. ΠœΠ΅Ρ‚ΠΎΠ΄ clear() удаляСт всС элСмСнты мноТСства сразу – Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹ΠΌ set:

>>> my_set = {6, 2, 9, 0}
>>> my_set.clear()
>>> print(my_set)
set()

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ мноТСств

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ set Π² Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проводятся Π½Π°Π΄ мноТСствами Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлятся Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹:

  • НС ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ исходныС мноТСства – эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ мноТСства.
  • Π˜Π·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ исходныС мноТСства.
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ мноТСства ΠΏΠΎΠ΄(Π½Π°Π΄)мноТСствами Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° – эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ True ΠΈΠ»ΠΈ False.

Рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· этих Π³Ρ€ΡƒΠΏΠΏ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ исходныС мноТСства

ОбъСдинСниС мноТСств

ОбъСдинСниС мноТСств union () – это мноТСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ состоит ΠΈΠ· элСмСнтов, входящих Π² состав хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Ρ… мноТСств:

>>> set_a = {1, 2, 3}
>>> set_b = {4, 5, 6}
>>> print(set_a.union(set_b))
{1, 2, 3, 4, 5, 6}

ВмСсто union() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ |:

>>> set_a = {'синий', 'Ρ€ΠΎΠ·ΠΎΠ²Ρ‹ΠΉ', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ'}
>>> set_b = {'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'красный', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ'}
>>> print(set_a | set_b)
{'синий', 'красный', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ', 'Ρ€ΠΎΠ·ΠΎΠ²Ρ‹ΠΉ', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ'}

ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ мноТСств

ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ мноТСств intersection() называСтся мноТСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ состоит ΠΈΠ· элСмСнтов, входящих Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΡ…ΡΡ мноТСств:

>>> set_a = {2, 3, 5, 1, 8}
>>> set_b = {2, 5, 0, 9, 7}
>>> print(set_a.intersection(set_b))
{2, 5}

ВмСсто intersection() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &:

>>> set_a = {'a', 'b', 'd', 'k'}
>>> set_b = {'v', 'b', 'e', 'k'}
>>> print(set_a & set_b)
{'k', 'b'}

Π Π°Π·Π½ΠΎΡΡ‚ΡŒ мноТСств

Π Π°Π·Π½ΠΎΡΡ‚ΡŒΡŽ мноТСств difference() называСтся мноТСство, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ входят всС элСмСнты ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ мноТСства, Π½Π΅ входящиС Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мноТСство:

>>> set_a = {4, 9, 7, 2, 1, 0}
>>> set_b = {5, 8, 3, 1, 4, 9}
>>> print(set_a.difference(set_b))
{0, 2, 7}

ВмСсто difference() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ - :

>>> set_a = {'a', 'b', 'g', 'j'}
>>> set_b = {'f', 'b', 's', 'g'}
>>> print(set_a - set_b)
{'a', 'j'}

БиммСтричСская Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ

БиммСтричСской Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒΡŽ symmetric_difference() называСтся мноТСство, состоящСС ΠΈΠ· элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мноТСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ:

>>> set_a = {1, 2, 3, 4}
>>> set_b = {6, 8, 4, 3}
>>> print(set_a.symmetric_difference(set_b))
{1, 2, 6, 8}

Π’ качСствС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° симмСтричСской разности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ^:

>>> set_a = {'h', 'v', 'a', 'w', 'q'}
>>> set_b = {'v', 'h', 'u', 'f', 'o'}
>>> print(set_a ^ set_b)
{'u', 'w', 'f', 'q', 'a', 'o'}

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ исходныС мноТСства

ΠœΠ΅Ρ‚ΠΎΠ΄ update()

Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ исходноС мноТСство ΠΏΠΎ объСдинСнию:

>>> set_a = {1, 2, 3}
>>> set_b = {4, 5, 6}
>>> set_a.update(set_b)
>>> print(set_a)
{1, 2, 3, 4, 5, 6}

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° update – |=:

>>> set_a = {'a', 'b', 'd'}
>>> set_b = {'c', 'e', 'f'}
>>> set_a |= set_b
>>> print(set_a)
{'b', 'c', 'f', 'a', 'e', 'd'}

ΠœΠ΅Ρ‚ΠΎΠ΄ intersection_update()

Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ исходноС мноТСство ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΡŽ:

>>> set_a = {1, 2, 3}
>>> set_b = {3, 4, 5}
>>> set_a.intersection_update(set_b)
>>> print(set_a)
{3}

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ intersection_update() – &=:

>>> set_a = {'a', 'b', 'd', 'q'}
>>> set_b = {'h', 'f', 'b', 'a'}
>>> set_a &= set_b
>>> print(set_a)
{'a', 'b'}

ΠœΠ΅Ρ‚ΠΎΠ΄ difference_update()

Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ исходноС мноТСство ΠΏΠΎ разности:

>>> set_a = {3, 2, 7, 8, 0}
>>> set_b = {4, 5, 6, 3, 8}
>>> set_a.difference_update(set_b)
>>> print(set_a)
{0, 2, 7}

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ difference_update() – -=:

>>> set_a = {'v', 's', 'a', 'q', 'r'}
>>> set_b = {'d', 's', 'a', 'f', 'e'}
>>> set_a -= set_b
>>> print(set_a)
{'q', 'r', 'v'}

ΠœΠ΅Ρ‚ΠΎΠ΄ symmetric_difference_update()

Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ исходноС мноТСство ΠΏΠΎ симмСтричСской разности:

>>> set_a = {1, 2, 3, 4, 5}
>>> set_b = {8, 2, 4, 6, 1}
>>> set_a.symmetric_difference_update(set_b)
>>> print(set_a)
{3, 5, 6, 8}

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ symmetric_difference_update() – ^=:

>>> set_a = {'a', 'k', 'r', 'o', 'p'}
>>> set_b = {'d', 'a', '$', 'o', '@'}
>>> set_a ^= set_b
>>> print(set_a)
{'@', 'p', 'd', 'k', 'r', '$'}

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для опрСдСлСния ΠΏΠΎΠ΄- ΠΈ надмноТСств

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ set_a считаСтся подмноТСством set_b Π² Ρ‚ΠΎΠΌ случаС, Ссли всС элСмСнты set_a входят Π² set_b. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, мноТСство set_b этом случаС считаСтся надмноТСством set_a. ΠŸΡ€ΠΈ этом любоС мноТСство считаСтся подмноТСством самого сСбя, ΠΈΠ»ΠΈ нСстрогим подмноТСством.

Для опрСдСлСния ΠΏΠΎΠ΄- ΠΈ надмноТСств Π² Python Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

1. issuperset() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мноТСство являСтся подмноТСством Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, ΠΈ False Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ случаС. Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² < (строгоС подмноТСство) ΠΈ <= (нСстрогоС подмноТСство):

>>> set_a = {1, 2, 3}
>>> set_b = {4, 5, 1, 2, 3}
>>> print(set_a.issubset(set_b))
True
>>> print(set_a <= set_b)
True
>>> print(set_a < set_b)
True

2. issubset() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли ΠΎΠ΄Π½ΠΎ мноТСство являСтся надмноТСством Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. Аналог – ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ > (строгоС надмноТСство) ΠΈ >= (нСстрогоС надмноТСство):

>>> set_a = {'XS', 'S', 'M', 'L', 'XL', 'XXL'}
>>> set_b = {'S', 'M', 'L'}
>>> print(set_a.issuperset(set_b))
True
>>> print(set_a > set_b)
True
>>> print(set_a >= set_b)
True

3. isdisjoint() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли мноТСства Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΡ… элСмСнтов, ΠΈ False, Ссли Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты Π΅ΡΡ‚ΡŒ:

>>> set_a = {1, 2, 3}
>>> set_b = {4, 5, 6}
>>> set_c = {1, 3, 5}
>>> print(set_a.isdisjoint(set_b))
True
>>> print(set_c.isdisjoint(set_b))
False

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Ρ‚Ρ€ΠΈ слова ΠΈ опрСдСляСт, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Π°Π½Π°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

кластСр
стрСлка
сталкСр

Π’Ρ‹Π²ΠΎΠ΄:

Π”Π°

РСшСниС:

set_a, set_b, set_c = set(input()), set(input()), set(input())
print('Π”Π°' if set_a == set_b == set_c else 'НСт')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 2

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Π΄Π²Π΅ строки с пСрСчислСниСм интСрСсов ΠΈ Ρ…ΠΎΠ±Π±ΠΈ Π΄Π²ΡƒΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ вычисляСт ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ совпадСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

ΠΊΠΈΠ½ΠΎ ΠΊΠ½ΠΈΠ³ΠΈ вСлосипСд Ρ…ΠΎΠΊΠΊΠ΅ΠΉ кулинария Ρ†Π²Π΅Ρ‚Ρ‹ кошки
кошки ΠΊΠΈΠ½ΠΎ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Ρ„ΡƒΡ‚Π±ΠΎΠ» кулинария Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ Π΄Π°ΠΉΠ²ΠΈΠ½Π³

Π’Ρ‹Π²ΠΎΠ΄:

Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ интСрСсов: 27.27%

РСшСниС:

hobbies1 = input().split()
hobbies2 = input().split()
result = len(set(hobbies1) & set(hobbies2)) / float(len(set(hobbies1) | set(hobbies2))) * 100
print(f'Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ интСрСсов: {result:.2f}%')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 3

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ строку, ΠΈ опрСдСляСт, являСтся Π»ΠΈ строка ΠΏΠ°Π½Π³Ρ€Π°ΠΌΠΌΠΎΠΉ (Ρ‚.Π΅. содСрТатся Π»ΠΈ Π² Π½Π΅ΠΉ всС 33 Π±ΡƒΠΊΠ²Ρ‹ русского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

Широкая элСктрификация ΡŽΠΆΠ½Ρ‹Ρ… Π³ΡƒΠ±Π΅Ρ€Π½ΠΈΠΉ даст ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΡƒ сСльского хозяйства

Π’Ρ‹Π²ΠΎΠ΄:

Π”Π°

РСшСниС:

result = {i.lower() for i in input() if i.isalpha()}
print('Π”Π°' if len(result) == 33 else 'НСт')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 4

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ n слов, ΠΈ вычисляСт количСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… символов Π²ΠΎ всСх словах.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

5
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°
ΠΊΠΎΠ΄
ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€
ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€
ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€

Π’Ρ‹Π²ΠΎΠ΄:

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… символов Π²ΠΎ всСх словах: 14

РСшСниС:

n = int(input())
print('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… символов Π²ΠΎ всСх словах:', len(set(''.join([input().lower() for _ in range(n)]))))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 5

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая:

  • ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Π΄Π²Π΅ строки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ двумя ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°ΠΌΠΈ.
  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ количСство ΠΊΠ½ΠΈΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ ΠΎΠ±Π° ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

ΠœΠ°ΡΡ‚Π΅Ρ€ ΠΈ ΠœΠ°Ρ€Π³Π°Ρ€ΠΈΡ‚Π°, Π’ΠΎΠΉΠ½Π° ΠΈ ΠΌΠΈΡ€, Π’ΠΈΡ…ΠΈΠΉ Π”ΠΎΠ½, Π•Π²Π³Π΅Π½ΠΈΠΉ ОнСгин
Π”ΠΆΠ΅ΠΉΠ½ Π­ΠΉΡ€, Π’Π΅Ρ€Ρ€ΠΎΡ€, Π’ΠΎΠΉΠ½Π° ΠΈ ΠΌΠΈΡ€, ΠœΠ°ΡΡ‚Π΅Ρ€ ΠΈ ΠœΠ°Ρ€Π³Π°Ρ€ΠΈΡ‚Π°, Нос

Π’Ρ‹Π²ΠΎΠ΄:

2

РСшСниС:

print(len(set(input().split(', ')) & set(input().split(', '))))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 6

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π²Π΅ строки с числами, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² порядкС возрастания числа, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² ΠΎΠ±Π΅ΠΈΡ… строках.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

4 12 6 11 0 8 7 5 1 25
2 1 4 5 56 6 8 7 14 33

Π’Ρ‹Π²ΠΎΠ΄:

1 4 5 6 7 8

Π—Π°Π΄Π°Π½ΠΈΠ΅ 7

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π²Π° числа ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π•ΡΡ‚ΡŒ, Ссли числа содСрТат ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΈ НСт Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

5678
3421

Π’Ρ‹Π²ΠΎΠ΄:

НСт

РСшСниС:

print('Π•ΡΡ‚ΡŒ' if set(input()) & set(input()) else 'НСт')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 8

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ строку с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° .jpg Ρ„Π°ΠΉΠ»ΠΎΠ², отсортированныС Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

book_cover.jpg cover.png Book_cover.jpg illustration.jpg ILLUSTRATION.JPG my_cover.png photo.gif award.jpg Award.jpg award.JPG

Π’Ρ‹Π²ΠΎΠ΄:

award.jpg book_cover.jpg illustration.jpg

РСшСниС:

files = input().split()
result = {i.lower() for i in files if i.lower().endswith('.jpg')}
print(*sorted(result))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 9

Π”Π²Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° поспорили ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… Π·Π½Π°Π΅Ρ‚ большС ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΎΠ². Они ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚ΠΎΠ½. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ n строк с названиями ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠ², ΠΈ опрСдСляСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ срСди Π½ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹. Если ΠΏΠΎΠ²Ρ‚ΠΎΡ€ Π΅ΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ вывСсти ΠŸΠΎΠ²Ρ‚ΠΎΡ€, Ссли Π½Π΅Ρ‚ – ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

6
аспидно-сСрый
Бананомания
Π°ΠΊΠ²Π°ΠΌΠ°Ρ€ΠΈΠ½ΠΎΠ²Ρ‹ΠΉ
Π‘Π°ΠΊΠ»Π°ΠΆΠ°Π½ΠΎΠ²Ρ‹ΠΉ
Π°Π³Π°Ρ‚ΠΎΠ²Ρ‹ΠΉ
Π°Π½Ρ‚Ρ€Π°Ρ†ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ

РСшСниС:

colors = [input().lower() for _ in range(int(input()))]
print('ΠŸΠΎΠ²Ρ‚ΠΎΡ€!' if len(colors) > len(set(colors)) else 'ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 10

ΠšΠΎΠ½Π΄ΠΈΡ‚Π΅Ρ€ собираСтся ΠΈΡΠΏΠ΅Ρ‡ΡŒ Ρ‚ΠΎΡ€Ρ‚. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π»ΠΈ Π² ΠΊΠ»Π°Π΄ΠΎΠ²ΠΎΠΉ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹:

  • Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список ΠΈΠ· m ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² ΠΊΠ»Π°Π΄ΠΎΠ²ΠΎΠΉ.
  • Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ n ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°.
  • Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π•ΡΡ‚ΡŒ, Ссли ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ имССтся Π² ΠΊΠ»Π°Π΄ΠΎΠ²ΠΎΠΉ, ΠΈ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

6
5
ΠΌΡƒΠΊΠ°
сахар
Π‘ΠΎΠ΄Π°
яйца
масло сливочноС
масло Ρ€Π°ΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅
Π‘Π°Ρ…Π°Ρ€
ΠœΡƒΠΊΠ°
Π―ΠΉΡ†Π°
сливки
масло сливочноС

Π’Ρ‹Π²ΠΎΠ΄:

Π•ΡΡ‚ΡŒ
Π•ΡΡ‚ΡŒ
Π•ΡΡ‚ΡŒ
ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚
Π•ΡΡ‚ΡŒ

РСшСниС:

m, n = [int(input()) for _ in 'mn']
pantry = {input().lower() for _ in range(m)}
[print('Π•ΡΡ‚ΡŒ' if input().lower() in pantry else 'ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚') for _ in range(n)]

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ просто ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ совпадСниСм (расхоТдСниСм) Π² составС Π³Ρ€ΡƒΠΏΠΏ. Однако мноТСства Π² Python ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ нСдостаток – ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ самоучитСля

  1. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ, сфСры примСнСния, установка, ΠΎΠ½Π»Π°ΠΉΠ½ IDE
  2. ВсС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для изучСния Python с нуля – ΠΊΠ½ΠΈΠ³ΠΈ, сайты, ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ курсы
  3. Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
  4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками
  5. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками ΠΈ списковыми Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ
  6. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со словарями ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ словарСй
  7. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ
  8. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со мноТСствами
  9. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ†ΠΈΠΊΠ»Π° for
  10. Условный Ρ†ΠΈΠΊΠ» while
  11. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ
  12. АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  13. РСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  14. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка, замыкания ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹
  15. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой
  16. РСгулярныС выраТСния
  17. ΠžΡΠ½ΠΎΠ²Ρ‹ скрапинга ΠΈ парсинга
  18. ΠžΡΠ½ΠΎΠ²Ρ‹ ООП: инкапсуляция ΠΈ наслСдованиС
  19. ΠžΡΠ½ΠΎΠ²Ρ‹ ООП – абстракция ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ
  20. ГрафичСский интСрфСйс Π½Π° Tkinter
  21. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Π½Π° Pygame
  22. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SQLite
  23. ΠžΡΠ½ΠΎΠ²Ρ‹ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Flask
  24. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NumPy
  25. ΠžΡΠ½ΠΎΠ²Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… с Pandas

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

admin
11 дСкабря 2018

ООП Π½Π° Python: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
admin
28 июня 2018

3 самых Π²Π°ΠΆΠ½Ρ‹Ρ… сфСры примСнСния Python: возмоТности языка

БущСствуСт мноТСство областСй примСнСния Python, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ особСнно...
admin
13 фСвраля 2017

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала

Пошаговая инструкция для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python...