ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠΈ Π² Python
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
- Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΡΡ
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Python
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
- ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
- ΠΡΠΎΠ²Π΅ΡΠΊΠΈ
- Π‘Π²ΠΎΠ΄Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ (cheatsheet)
- ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
- Π‘Π»ΠΎΠ²Π°ΡΠΈ Python
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ
- ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ°Ρ
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DictView: ΡΠΈΠΊΠ»Ρ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
- Π‘Π»ΠΎΠ²Π°ΡΡ Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ OrderedDict
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ
- ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ (ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ)
- ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ (ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ)
- ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ (ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ)
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ (set
) β Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
ΡΠ·ΡΠΊΠ° Python, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
- ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
- ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎ
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ (Π½Π΅ Ρ
ΡΠ°Π½ΠΈΡ) ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° β Ρ Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (hashable objects)
- Π Python ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ
set
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠ°, ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΡΠ΅ΠΆtuple
, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΠΈΡΠΎΠΊlist
, Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎset
β¦
ΠΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ°Π·Π½ΠΎΡΡΠΈβ¦
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Python Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΆΠ΅.
ΠΡΡΡΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ set
>>> A = set() >>> type(A) <class 'set'> >>> len(A) 0 >>> A set()
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ len
.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
>>> A.add(1) >>> A {1} >>> A.add(2) >>> A {1, 2} >>> A.add(2) >>> A {1, 2}
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
Π’Π°ΠΊΠΆΠ΅, ΠΈΠ· Π²ΡΠ²ΠΎΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ {}, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. Π’Π°ΠΊ, Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΏΡΡΡΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ β Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠΌ
>>> B = {1, 2} >>> B {1, 2}
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°
>>> B.add([3,4,5]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΏΠΎΠΏΡΡΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ B.
Π£ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ set.add
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ set.remove
>>> B {1, 2} >>> B.remove(1) >>> B {2} >>> B.remove(3) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 3
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π΅ Π²Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° KeyError
.
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ set.discard
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π» Π² Π½ΡΠΌ.
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΡΠΎΠ²Π΅ΡΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
in
>>> B = {1, 2} >>> B {1, 2} >>> 3 in B False
ΠΡΠΈΠΌΠΏΡΠΎΡΠΈΠΊΠ° x in set
β O(1).
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡin
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π² ΡΡΡΠΎΠΊΡ
'AA' in 'bbAAcc'
ΠΈΠ»ΠΈ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²5 in [1, 2, 5, 6]
. ΠΡΠΈΠΌΠΏΡΠΎΡΠΈΠΊΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
>>> A = {1, 2, 3} >>> B = {1, 2, 3} >>> A == B True >>> B.add(4) >>> A {1, 2, 3} >>> B {1, 2, 3, 4} >>> A == B False
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π΅ΡΡΡΠΎΠ³ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ set.issubset
>>> A {1, 2, 3} >>> B {1, 2, 3, 4} >>> A.issubset(B) True >>> B.issubset(A) False >>> A.issubset(A) True
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π΅ΡΡΡΠΎΠ³ΠΎΠ΅ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ set.issuperset
>>> A {1, 2, 3} >>> B {1, 2, 3, 4} >>> A.issuperset(B) False >>> B.issuperset(A) True >>> B.issuperset(B) True
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
>>> A = {1, 2, 4} >>> B = {1, 2, 3} >>> A.union(B) # union - ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² {1, 2, 3, 4} >>> A.intersection(B) # intersection - ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ {1, 2} >>> A.difference(B) # difference - ΡΠ°Π·Π½ΠΎΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² {4} >>> B.difference(A) {3} >>> A.symmetric_difference(B) # symmetric_difference - ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π·Π½ΠΎΡΡΡ {3, 4} >>> B.symmetric_difference(A) {3, 4}
Π‘Π²ΠΎΠ΄Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ (cheatsheet)
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ
elem β Python-ΠΎΠ±ΡΠ΅ΠΊΡ
A β ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ
set
- B, C,..
1. Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ A.method_name(B, C,..): B, C,.. ΡΠ²Π»ΡΡΡΡΡ Π»ΡΠ±ΡΠΌΠΈ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
{-1}.union(range(2)) == {-1, 0, 1}
Π²Π΅ΡΠ½ΡΡTrue
.2. Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ c ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, A > B ΠΈΠ»ΠΈ A & B & C & β¦: B, C,.. ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΡΠΈΠΏΠ°
set
(ΠΈ ΡΠ°ΠΊΠΆΠ΅frozenset
, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΡΡ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ | Π’ΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° |
---|---|---|
ΠΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° | elem in A | bool |
Π Π°Π²Π΅Π½ΡΡΠ²ΠΎ | A == B | bool |
A.issubset(B) ΠΈΠ»ΠΈ A <= B | bool | |
Π―Π²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠ³ΠΈΠΌ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ | A < B | bool |
Π―Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΡΡΠΎΠ³ΠΈΠΌ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ | A.issuperset(B) ΠΈΠ»ΠΈ A >= B | bool |
Π―Π²ΡΠ»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠ³ΠΈΠΌ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ | A > B | bool |
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² | A.union(B, C,..) | set |
A | B | C | β¦ | set | |
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² | A.intersection(B, C,..) | set |
A & B & C & β¦ | set | |
Π Π°Π·Π½ΠΎΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² | A.![]() | set |
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΡ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ inplace Π²Π°ΡΠΈΠ°Π½ΡΡ. ΠΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΎ ΡΠ΅ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ _update, Π° Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΠΊ ΡΠ°Π²Π΅Π½ΡΡΠ²Π° =. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
>>> A = {1, 2, 3, 4} >>> B = {2, 4} >>> A.difference_update(B) >>> A {1, 3} >>> A = {1, 2, 3, 4} >>> B = {2, 4} >>> A -= B >>> A {1, 3}
ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
Π Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° β frozenset
.
ΠΡΠΎΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° set
, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡΡ.
ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ²Π»ΡΡΡΡΡ Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° set
.
Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², Π³Π΄Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ set
ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΡΠΈΠΏΠ° frozenset
.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ frozenset
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
frozenset(iterable)
, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΈΡΠ΅ΡΠΈΡΡΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.>>> FS = frozenset({1, 2, 3}) >>> FS frozenset({1, 2, 3}) >>> A = {1, 2, 4} >>> FS & A frozenset({1, 2}) >>> A & FS {1, 2}
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ frozenset
ΠΈΠ· ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° {1, 2, 3}
.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ &
.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
Π’Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ.
Π‘Π»ΠΎΠ²Π°ΡΡ (dictionary) Π² Python β ΡΡΠΎ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ. ΠΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΏΠ°ΡΡ Π²ΠΈΠ΄Π° ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ»ΡΡΠΈ Π² Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ.
Π Python Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² β dict
.
- ΠΊΠ»ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ
ΠΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
>>> d1 = dict() >>> d2 = {} >>> d1 {} >>> d2 {} >>> type(d1) <class 'dict'> >>> type(d2) <class 'dict'>
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ:
>>> domains = {} >>> domains['ru'] = 'Russia' >>> domains['com'] = 'commercial' >>> domains['org'] = 'organizations' >>> domains {'ru': 'Russia', 'com': 'commercial', 'org': 'organizations'}
ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΏΠ°ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΠΎΠ²Π°ΡΡ domains
ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊ
domains = {'ru': 'Russia', 'com': 'commercial', 'org': 'organizations'}
.
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΊΠ»ΡΡΡ:
>>> domains['com'] 'commercial' >>> domains['de'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'de'
Π£Π΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° del
.
ΠΡΠ»ΠΈ ΠΊΠ»ΡΡΠ° Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π½Π΅Ρ, ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° KeyError
>>> domains {'ru': 'Russia', 'com': 'commercial', 'org': 'organizations'} >>> del domains['de'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'de' >>> del domains['ru'] >>> domains {'com': 'commercial', 'org': 'organizations'}
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ dict.setdefault
, dict.get
, dict.pop
, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡΠ° Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π½Π΅Ρ
>>> d1 = {} >>> d1.setdefault('a', 10) 10 >>> d1.setdefault('b', 20) 20 >>> d1 {'a': 10, 'b': 20} >>> d1.setdefault('c') >>> d1 {'a': 10, 'b': 20, 'c': None} >>> d1.setdefault('a', 123) 10 >>> d1 {'a': 10, 'b': 20, 'c': None} >>> d1.get('a') 10 >>> d1.get('d') # Π²Π΅ΡΠ½ΡΠ» None >>> d1.get('d', 'NoKey') 'NoKey' >>> d1.pop('d') Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'd' >>> d1.pop('d', 255) 255 >>> d1 {'a': 10, 'b': 20, 'c': None} >>> d1.pop('a', 255) 10 >>> d1 {'b': 20, 'c': None}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ°Ρ
ΠΠ»ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΈ ΡΠΈΡΠ»ΠΎ: int
ΠΈΠ»ΠΈ float
.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ Π² Python ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄Π²Π° ΠΊΠ»ΡΡΠ° ΡΠ°Π·Π½ΡΠ΅, Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π½ΠΈΡ
Π²Π΅ΡΠ½ΠΎ k1 != k2 # True
.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
>>> d = {0: 10} >>> d {0: 10} >>> d[0] = 22 >>> d {0: 22} >>> d[0.0] = 33 >>> d {0: 33} >>> 0.0 != 0 False
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ float
-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DictView: ΡΠΈΠΊΠ»Ρ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΡΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΉΡΠΈΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ
>>> d = {'a': 10, 'c': 30, 'b': 20} >>> for k in d: ... print(k) ... a c b
ΠΠ°ΡΠ°ΡΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΉΡΠΈΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌ ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ dict.keys()
, dict.values()
, dict.items()
.
ΠΠ½ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ DictView
ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠΈΠΊΠ»Π°Ρ
:
>>> d = {'a': 10, 'c': 30, 'b': 20} >>> for k in d.keys(): ... print(k) ... a c b >>> for v in d.values(): ... print(v) ... 10 30 20 >>> for k, v in d.items(): ... print(k, v) ... a 10 c 30 b 20
ΠΠ±ΡΠ΅ΠΊΡΡ DictView
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠΈ, Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ
DictView
ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ DictView
.
>>> d {'a': 10, 'c': 30, 'b': 20} >>> dkeys = d.keys() >>> 'abc' in dkeys False >>> 'c' in dkeys True >>> {'a', 'b', 'c'} == dkeys True >>> dkeys & {'b', 'c', 'd'} {'b', 'c'}
Π‘Π»ΠΎΠ²Π°ΡΡ Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ OrderedDict
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°Π΄Π°Ρ Π½Π° ejudge.
ΠΡΠ»ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π° ΡΠΈΠΊΠ»Ρ Π²ΡΡΠ΅, ΡΠΎ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΈΠΊΠ»Π°Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ dict
Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.7 (Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΈΠ·-ΠΏΠΎΠ΄ Π²Π΅ΡΡΠΈΠΈ 3.7.4).
Π£Π·Π½Π°ΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ Python ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° python3 βversion ΠΈΠ»ΠΈ Π·Π°ΠΉΠ΄Ρ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (Π²Π΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΡΠ²Π΅ΡΡ
Ρ).
ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½ΠΎ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ, ΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ OrderedDict
.
ΠΠ½Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ collections
.
Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ.
>>> import collections >>> od = collections.OrderedDict() >>> od OrderedDict() >>> od['a'] = 10 >>> od['c'] = 30 >>> od['b'] = 20 >>> od OrderedDict([('a', 10), ('c', 30), ('b', 20)])
Python 3: ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ: Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π° Π²ΠΈΠ΄Π΅ΠΎ
ΠΠ° ΡΡΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΈ ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ (ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²) ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ len:
a={"abc", (1,2), 5, 4, True} len(a)
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ in:
"abc" in a
ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈ False Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ
ΡΠ»ΡΡΠ°Π΅. ΠΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° Π½Π΅ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
7 not in a
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
ΠΠ»Ρ Π»ΡΠ±ΡΡ Π΄Π²ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²:
setA = {1,2,3,4} setB = {3,4,5,6,7}
ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠΎ Π΅ΡΡΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π² ΠΎΠ±ΠΎΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° &:
setA & setB
ΠΠ΄Π΅ΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π‘Π°ΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΡΡΠ°ΡΡΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΎΡ ΡΠ°ΠΊ:
res = setA & setB
ΠΠ»ΠΈ, ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
setA = setA & setB
ΡΡΠΎ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ:
setA &= setB
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ:
setC = {9, 10, 11}
ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ:
setA & setC
Π±ΡΠ΄Π΅Ρ ΠΏΡΡΡΠΎΠ΅
ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ intersection:
setA = {1,2,3,4} setB = {3,4,5,6,7} setA.intersection(setB)
ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ². Π‘Π°ΠΌΠΈ ΠΆΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΡΡΠ°ΡΡΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ΠΎ Π΅ΡΡΡ, Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΊ:
res = setA.intersection(setB)
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
setA &= setB
ΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ intersection_update:
setA.intersection_update(setB)
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ seta Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
ΠΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° |:
setA = {1,2,3,4} setB = {3,4,5,6,7} setA | setB
Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²:
{1, 2, 3, 4, 5, 6, 7}
ΠΡΡ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΠ°ΠΊ:
setA |= setB
ΡΠΎΠ³Π΄Π° Π½Π°
ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ setA. ΠΠ»ΠΈ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ
Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
setA.union(setB)
ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ· ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΡΠΈΡΠ°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ β ΡΡΠΎ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²:
setA = {1,2,3,4} setB = {3,4,5,6,7}
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
setA - setB
Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° setA Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ setB:
{1, 2}
ΠΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° setB Π²ΡΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ setA:
setB β setA
ΠΏΠΎΠ»ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
{5, 6, 7}
ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ setA.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
setA -= setB # setA = setA - setB setB -= setA # setB = setB - setA
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ setA ΠΈ setB Π±ΡΠ΄ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ
Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΠΉ. setB
ΡΠΎ Π΅ΡΡΡ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² ΠΎΠ±Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
{1, 2, 5, 6, 7}
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ:
ΠΠ° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ
setA == setB
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ False, Ρ.ΠΊ. ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π΅ ΡΠ°Π²Π½Ρ. ΠΠ½ΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ°Π²Π½ΡΠΌΠΈ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΡΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΡΠ°Π²Π½Ρ (ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠ΅:
setA = {7,6,5,4,3}; setB = {3,4,5,6,7}
ΡΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
setA == setB
Π²Π΅ΡΠ½Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°Ρ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»ΠΈ ΠΏΡΠΈ ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ.
ΠΠ° Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ
ΠΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ:
setA != setB
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
Π½Π΅ ΡΠ°Π²Π½Ρ ΠΈ False, Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½Ρ.
ΠΠ° Π±ΠΎΠ»ΡΡΠ΅, ΠΌΠ΅Π½ΡΡΠ΅
Π Python ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ <, > ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌ, ΠΏΠΎ ΡΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π² Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ (Π²Ρ ΠΎΠ΄ΠΈΡ) Π΄ΡΡΠ³ΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
setA = {7,6,5,4,3}; setB = {3,4,5}
ΡΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
setB < setA
Π²Π΅ΡΠ½Π΅Ρ True, Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
setA < setB
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False. ΠΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° setB Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ setA:
setB.add(22)
ΡΠΎ ΠΎΠ±Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π΅ΡΠ½ΡΡ False.
ΠΠ»Ρ ΡΠ°Π²Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
setA = {7,6,5,4,3}; setB = {3,4,5,6,7}
ΠΎΠ±Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½ΡΡ False. ΠΠΎ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ:
setA <= setB setA >= setB
Π²Π΅ΡΠ½ΡΡ True.
ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΡΠ΅ΠΊΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠ². ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΡΠ»ΠΎΠ²Π° ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΡΡΠΎΠΊΠΈ β\nβ.
ΠΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
#1. ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Python Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ
#2. ΠΠ°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² PyCharm
#3. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ type ΠΈ id
#4. Π§ΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ, Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
#5. ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ math
#6. Π€ΡΠ½ΠΊΡΠΈΠΈ print() ΠΈ input(). ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π² ΡΠΈΡΠ»Π° int() ΠΈ float()
#7. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ bool. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ and, or, not
#8. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠΈ. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
#9. ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅Π·Π°ΠΌΠΈ ΡΡΡΠΎΠΊ
#10. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΡΠΎΠΊ
#11. Π‘ΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², row-ΡΡΡΠΎΠΊΠΈ
#12. Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ: ΠΌΠ΅ΡΠΎΠ΄ format ΠΈ F-ΡΡΡΠΎΠΊΠΈ
#13. Π‘ΠΏΠΈΡΠΊΠΈ β ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ
#14. Π‘ΡΠ΅Π·Ρ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ²
#15. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΏΠΈΡΠΊΠΎΠ²
#16. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ
#17. Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-else
#18. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ±ΠΎΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-elif-else
#19. Π’Π΅ΡΠ½Π°ΡΠ½ΡΠΉ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ½Π°ΡΠ½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅
#20. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π° while
#21. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΈΠΊΠ»ΠΎΠ² break, continue ΠΈ else
#22. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π° for. Π€ΡΠ½ΠΊΡΠΈΡ range()
#23. ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΈΠΊΠ»Π° for. Π€ΡΠ½ΠΊΡΠΈΡ enumerate()
#24. ΠΡΠ΅ΡΠ°ΡΠΎΡ ΠΈ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π€ΡΠ½ΠΊΡΠΈΠΈ iter() ΠΈ next()
#25. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ. ΠΡΠΈΠΌΠ΅ΡΡ Π·Π°Π΄Π°Ρ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΊΠ»Π°ΠΌΠΈ
#26. Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΠ°ΡΠΊΠ°Π»Ρ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ²
#27. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (List comprehensions)
#28. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²
#29. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ»ΠΎΠ²Π°ΡΠΈ (dict). ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ
#30. ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ»ΠΎΠ²Π°ΡΡ Π² ΡΠΈΠΊΠ»Π΅
#31. ΠΠΎΡΡΠ΅ΠΆΠΈ (tuple) ΠΈ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ
#32. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (set) ΠΈ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ
#33. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
#34. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
#35. Π€ΡΠ½ΠΊΡΠΈΠΈ: ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ def ΠΈ ΠΈΡ Π²ΡΠ·ΠΎΠ²
#36. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ return Π² ΡΡΠ½ΠΊΡΠΈΡΡ
. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
#37. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΠ²ΠΊΠ»ΠΈΠ΄Π° Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΠΠ
#38. ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
#39. Π€ΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² *args ΠΈ **kwargs
#40. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ * ΠΈ ** Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
#41. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
#42. ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ (lambda) ΡΡΠ½ΠΊΡΠΈΠΈ
#43. ΠΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° global ΠΈ nonlocal
#44. ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² Python
#45. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
#46. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
#47. ΠΠΌΠΏΠΎΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎΠΌΠ°Π½Π΄Ρ import ΠΈ from
#48. ΠΠΌΠΏΠΎΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
#49. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (pip install). ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
#50. ΠΠ°ΠΊΠ΅ΡΡ (package) Π² Python. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ
#51. Π€ΡΠ½ΠΊΡΠΈΡ open. Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
#52. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ FileNotFoundError ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (with) Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²
#53. ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ
#54. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
#55. Π€ΡΠ½ΠΊΡΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ yield
#56. Π€ΡΠ½ΠΊΡΠΈΡ map. ΠΡΠΈΠΌΠ΅ΡΡ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
#57. Π€ΡΠ½ΠΊΡΠΈΡ filter Π΄Π»Ρ ΠΎΡΠ±ΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
#58. Π€ΡΠ½ΠΊΡΠΈΡ zip. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
#59. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° sort ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ sorted
#60. ΠΡΠ³ΡΠΌΠ΅Π½Ρ key Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΏΠΎ ΠΊΠ»ΡΡΡ
#61. Π€ΡΠ½ΠΊΡΠΈΠΈ isinstance ΠΈ type Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ
#62. Π€ΡΠ½ΠΊΡΠΈΠΈ all ΠΈ any. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
#63. Π Π°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π». Π‘ΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
#64. ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π, ΠΠΠ, ΠΠ, XOR. Π‘Π΄Π²ΠΈΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
#65. ΠΠΎΠ΄ΡΠ»Ρ random ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
#66. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ
#67. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
#68. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠ»Π°ΡΡΠΎΠ²
#69. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ match/case. ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ
#70. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ match/case Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ
#71. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ match/case ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
#72. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ match/case. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
collections.abc β ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² β ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 3.11.3
ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.3: Π Π°Π½Π΅Π΅ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ» ΡΠ°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ collections
.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄: Lib/_collections_abc.py
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ,
ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΈ ΠΊΠ»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ; Π΄Π»Ρ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Ρ
ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈΠ»ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
issubclass()
ΠΈΠ»ΠΈ isinstance()
ΡΠ΅ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ
ΠΈΠ· ΡΡΠ΅Ρ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
1) ΠΠ½ΠΎΠ²Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ΅ΡΠ΅ΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΎΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ. ΠΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ:
ΠΊΠ»Π°ΡΡ C(ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ): # ΠΡΡΠΌΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ def __init__(self): ... # ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ABC def __getitem__(self, index): ... # ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ def __len__(self): ... # ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ def count(self, value): ... # ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠΈ
>>> issubclass(C, ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ) ΠΡΡΠΈΠ½Π½ΡΠΉ >>> isinstance(C(), ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ) ΠΡΡΠΈΠ½Π½ΡΠΉ
2) Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅
ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡΒ» Π°Π·Π±ΡΠΊΠΈ. ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ API
Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΠΉ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠ΅ΡΡΡ
issubclass()
ΠΈΠ»ΠΈ isinstance()
.
ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΈΠ· ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
API:
ΠΊΠ»Π°ΡΡ D: # ΠΠ΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ def __init__(self): ... # ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ABC def __getitem__(self, index): ... # ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ def __len__(self): ... # ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ def count(self, value): ... # ΠΠ΅ΡΠΎΠ΄ Mixin def index(self, value): ... # ΠΠ΅ΡΠΎΠ΄ Mixin Sequence.register(D) # Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
>>> issubclass(D, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ) ΠΡΡΠΈΠ½Π½ΡΠΉ >>> isinstance(D(), ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ) ΠΡΡΠΈΠ½Π½ΡΠΉ
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ D
Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ __ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ__
, __iter__
ΠΈ __reversed__
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ
Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ reversed()
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ __getitem__
ΠΈ __len__
.
3) ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠ·Π½Π°Π²Π°Π΅ΠΌΡ ΠΏΠΎ Π½Π°Π»ΠΈΡΠΈΡ
ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ (Π΅ΡΠ»ΠΈ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ Π±ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΠΠ΅Ρ
):
ΠΊΠ»Π°ΡΡ Π: Π΄Π΅Ρ __iter__(Ρ): ... Π΄Π΅Ρ __ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ__(ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ): ...
>>> issubclass(E, Iterable) ΠΡΡΠΈΠ½Π½ΡΠΉ >>> isinstance(E(), Iterable) ΠΡΡΠΈΠ½Π½ΡΠΉ
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ
Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· Π½Π°Π»ΠΈΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠ»Ρ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°Ρ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ __getitem__
, __len__
ΠΈ __iter__
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΎΡ ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
.
ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.9: ΡΡΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ []
. Π‘ΠΌ. ΠΎΠ±ΡΠΈΠΉ ΡΠΈΠΏ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°
ΠΈ PEP 585 .
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ABC:
ΠΠ·Π±ΡΠΊΠ° | ΠΠ°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ | ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ | ΠΠ΅ΡΠΎΠ΄Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ |
---|---|---|---|
| | ||
| | ||
| | ||
| | | |
| | | |
| | | |
| | ||
| | ||
| | | |
| | | |
| | | Π£Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΎ |
| | | Π£Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ |
| | | |
| | | Π£Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΎ |
| | | |
| | | Π£Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ |
| | | |
| | | |
| | | |
| | | |
| | ||
| | | |
| | ||
| | | |
| | | |
Π‘Π½ΠΎΡΠΊΠΈ
- 1(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
ΠΡΠΈ ABC ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ
.
Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π°__subclasshook__()
None
. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΡΠ΅Π±ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΡΠΌΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ.- 2
ΠΡΠΎΠ²Π΅ΡΠΊΠ°
isinstance(obj, Iterable)
ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊIterable
ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡΡ__iter__()
ΠΌΠ΅ΡΠΎΠ΄, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Ρ__getitem__()
ΠΌΠ΅ΡΠΎΠ΄. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ, ΡΡΠΎ Π²ΡΠ·Π²Π°ΡΡiter(obj)
.
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ
- ΠΊΠ»Π°ΡΡ collections.abc.Container
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
__contains__()
.
- ΠΊΠ»Π°ΡΡ collections.abc.Hashable
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
__hash__()
.
- ΠΊΠ»Π°ΡΡ collections.abc.Sized
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
__len__()
.
- ΠΊΠ»Π°ΡΡ collections.abc.Callable
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
__call__()
.
- ΠΊΠ»Π°ΡΡ collections.abc.Iterable
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
__iter__()
.ΠΡΠΎΠ²Π΅ΡΠΊΠ°
isinstance(obj, Iterable)
ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΊΠ°ΠΊIterable
ΠΈΠ»ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄__iter__()
, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ__getitem__() 9ΠΠ΅ΡΠΎΠ΄ 0004. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΡΡΠΎ Π²ΡΠ·Π²Π°ΡΡ
iter(obj)
.
ΠΊΠ»Π°ΡΡ collections.abc.Collection
ABC Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.
6.
ΠΊΠ»Π°ΡΡ collections.abc.Iterator
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ
__iter__()
ΠΈ__next__()
ΠΌΠ΅ΡΠΎΠ΄Π°. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ.
ΠΊΠ»Π°ΡΡ collections.abc.Reversible
ABC Π΄Π»Ρ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ
__reversed__()
ΠΌΠ΅ΡΠΎΠ΄.ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.6.
ΠΊΠ»Π°ΡΡ collections.abc.Generator
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² PEP 342 , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
send()
,Π±ΡΠΎΡΠΈΡΡ()
ΠΈΠ·Π°ΠΊΡΡΡΡ()
ΠΌΠ΅ΡΠΎΠ΄Ρ. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.5.
ΠΊΠ»Π°ΡΡ collections.abc.Sequence
ΠΊΠ»Π°ΡΡ collections.abc.MutableSequence
ΠΊΠ»Π°ΡΡ collections.abc.ByteString
ABC Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ
__iter__()
,__reversed__()
ΠΈindex()
, ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°__getitem__()
. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ__getitem__()
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ°, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΠΉ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ; ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ (ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ), ΠΌΠΈΠΊΡΠΈΠ½Ρ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π±ΡΠ΄ΡΡ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.5: Π ΠΌΠ΅ΡΠΎΠ΄ index() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° stop ΠΈ start Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
ΠΊΠ»Π°ΡΡ collections.abc.Set
ΠΊΠ»Π°ΡΡ collections.abc.MutableSet
ABC Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π½Π°Π±ΠΎΡΠΎΠ².
ΠΊΠ»Π°ΡΡ collections.abc.Mapping
ΠΊΠ»Π°ΡΡ collections.abc.MutableMapping
ABC Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ.
ΠΊΠ»Π°ΡΡ collections.abc.MappingView
ΠΊΠ»Π°ΡΡ collections.abc.ItemsView
ΠΊΠ»Π°ΡΡ collections.abc.KeysView
ΠΊΠ»Π°ΡΡ collections.abc.ValuesView
ABC Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΊΠ»Π°ΡΡ collections.abc.Awaitable
ABC Π΄Π»Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²
await
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ__await__()
ΠΌΠ΅ΡΠΎΠ΄.ΠΠ±ΡΠ΅ΠΊΡΡ Coroutine ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ
Coroutine
ABC β Π²ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΎΠΉ ABC.ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π CPython ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° (Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, ΡΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅
ΡΠΈΠΏΠΎΠ².coroutine()
) ΡΠ²Π»ΡΡΡΡΡ awaitables , Ρ ΠΎΡΡ Ρ Π½ΠΈΡ Π½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π°__await__()
. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅isinstance(gencoro, Awaitable)
Π΄Π»Ρ Π½ΠΈΡ Π²Π΅ΡΠ½Π΅ΡFalse
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅inspect.
Π΄Π»Ρ ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ.isawaitable()
ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.5.
ΠΊΠ»Π°ΡΡ collections.abc.Coroutine
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² Coroutine Objects:
ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ()
,Π±ΡΠΎΡΠΈΡΡ()
ΠΈΠ·Π°ΠΊΡΡΡΡ()
. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ__ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅__()
. ΠΡΠ΅ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Coroutine
ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ
. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π CPython ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° (Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, ΡΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅
ΡΠΈΠΏΠΎΠ².coroutine()
) ΡΠ²Π»ΡΡΡΡΡ awaitables , Ρ ΠΎΡΡ Ρ Π½ΠΈΡ Π½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π°__await__()
. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅isinstance(gencoro, Coroutine)
Π΄Π»Ρ Π½ΠΈΡ Π²Π΅ΡΠ½Π΅ΡFalse
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅inspect.isawaitable()
Π΄Π»Ρ ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ.ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.5.
ΠΊΠ»Π°ΡΡ collections.
abc.AsyncIterable
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ
__aiter__
ΠΌΠ΅ΡΠΎΠ΄. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ.ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.5.
ΠΊΠ»Π°ΡΡ collections.abc.AsyncIterator
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ
__aiter__
ΠΈ__anext__
ΠΌΠ΅ΡΠΎΠ΄Ρ. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°.ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.5.
ΠΊΠ»Π°ΡΡ collections.abc.AsyncGenerator
ABC Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² PEP 525 ΠΈ PEP 492 .
ΠΠΎΠ²ΠΎΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 3.6.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈ ΡΠ΅ΡΠ΅ΠΏΡΡ
ABC ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π»ΠΈ ΠΎΠ½ΠΈ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π°Π·ΠΌΠ΅Ρ = ΠΠ΅Ρ
Π΅ΡΠ»ΠΈ isinstance (myvar, collections.abc.Sized):
ΡΠ°Π·ΠΌΠ΅Ρ = Π΄Π»ΠΈΠ½Π° (ΠΌΠΎΠΉΠ²Π°Ρ)
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ABC ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ΠΉ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ
ΠΊΠ»Π°ΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ
ΠΏΠΎΠ»Π½ΡΠΉ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
API, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠΈ Π±Π°Π·ΠΎΠ²ΡΡ
Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: __contains__()
, __iter__()
ΠΈ __len__()
.
ABC ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ __and__()
ΠΈ isdisjoint()
:
ΠΊΠ»Π°ΡΡ ListBasedSet (ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.abc.Set):
''' Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ, Π° Π½Π΅ ΡΠΊΠΎΡΠΎΡΡΠΈ
ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°Π±ΠΎΡΠ° Π±ΡΠ»ΠΈ Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ. '''
def __init__(ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΡΠΉ):
self.elements = lst = []
Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ:
Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π² ΡΠΏΠΈΡΠΊΠ΅:
lst.append(Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
Π·Π°ΡΠΈΡΠ° __iter__(Ρ):
Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ (self.elements)
def __contains__(Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² self.elements
Π·Π°ΡΠΈΡΠ° __len__(Ρ):
Π²Π΅ΡΠ½ΡΡΡ len(self.elements)
s1 = ListBasedSet('abcdef')
s2 = ListBasedSet('defghi')
ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ = s1 & s2 # ΠΠ΅ΡΠΎΠ΄ __and__() ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Set
ΠΈ MutableSet
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΈΠΊΡΠΈΠ½Π°:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π½Π°Π±ΠΎΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΈΠΊΡΠΈΠ½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈΠ· ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ°
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ Π² ΡΠΎΡΠΌΠ΅ ClassName(iterable)
.
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌ _from_iterable()
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ cls(iterable)
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°.
ΠΡΠ»ΠΈ Mixin Set
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ
ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ _from_iterable()
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΈΠ·
ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ, Ρ.ΠΊ.
ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π°), ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ __le__()
ΠΈ __ge__()
,
ΡΠΎΠ³Π΄Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡ ΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΡ.
Set
mixin ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ _hash()
Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ
Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ.
Π·Π° Π½Π°Π±ΠΎΡ; ΠΎΠ΄Π½Π°ΠΊΠΎ __hash__()
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π²ΡΠ΅ Π½Π°Π±ΠΎΡΡ
ΡΠ²Π»ΡΡΡΡΡ Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Ρ
Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΈΠΊΡΠΈΠ½ΠΎΠ²,
Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡ Set()
ΠΈ Hashable()
, Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ __Ρ
ΡΡ__ = Set._Ρ
ΡΡ
.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π΅ΡΠ΅ΠΏΡ OrderedSet Π΄Π»Ρ
ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° MutableSet
.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ABC ΡΠΌ. Π² ΠΌΠΎΠ΄ΡΠ»Π΅ abc
ΠΈ PEP 3119 .
ABC Set - ΠΠΎΠ΄Π°ΡΠΎΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠΎ ΡΡ
ΠΎΠ΄Ρ Π·Π° ΠΊΠΎΠΆΠ΅ΠΉ Π΄Π»Ρ ΠΎΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΆΠΈ, ΠΏΡΠΎΡΠΈΠ² ΡΡΠ°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΠΈΠ² ΠΌΠΎΡΡΠΈΠ½ β My Organic Zone
ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅
1
/
ΠΈΠ·
1
ΠΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π½Π°ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅
ΠΠ°ΠΊ
ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ Π½Π°ΡΠ΅Π³ΠΎ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΈΡΠ°ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π»ΠΈΡΠ°.
ΠΡΠ΄Ρ ΡΠΎ Π² Π΄ΡΡΠ΅ ΠΈΠ»ΠΈ Π½Π°Π΄ ΡΠ°ΠΊΠΎΠ²ΠΈΠ½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΏΠ»ΡΡ Π²ΠΎΠ΄Ρ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π»Π΅Π³ΠΊΡΡ ΠΏΠ΅Π½Ρ. ΠΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠΌΠ°ΡΡΠΈΡΡΠΉΡΠ΅ Π»ΠΈΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π³ΡΡΠ·Ρ ΠΈ Π±Π°ΠΊΡΠ΅ΡΠΈΠΈ. Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΠ΅ΠΏΠ»ΠΎΠΉ Π²ΠΎΠ΄ΠΎΠΉ ΠΈ Π²ΡΡΡΡΠΈΡΠ΅.
ΠΠΎΡΠ»Π΅ Π²ΡΡΡΡ
Π°Π½ΠΈΡ Π½Π°Π½Π΅ΡΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΏΠ΅Π»Ρ Π½Π°ΡΠ΅ΠΉ ΡΡΠ²ΠΎΡΠΎΡΠΊΠΈ Ρ Π³ΠΈΠ°Π»ΡΡΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΊΠΈΡΠ»ΠΎΡΠΎΠΉ Π½Π° Π»ΠΈΡΠΎ (ΠΈ, Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅, Π½Π° ΡΠ΅Ρ), ΡΡΠΎΠ±Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΡΠ²Π»Π°ΠΆΠ½ΠΈΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΠΈ ΠΊΠΎΠΆΠΈ. ΠΡΡΠ°Π²ΡΡΠ΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡΠΎΡ
Π½Π΅Ρ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π·Π°ΡΠΈΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ ΡΡΠΏΠΎΠΊΠ°ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ²Π»Π°ΠΆΠ½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΡΠ΅ΠΌΠ° Ρ ΡΠ΅ΡΠΈΠ½ΠΎΠ»ΠΎΠΌ Π΄Π»Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΡΠΎΡΡΠ°.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ
Π’ΠΈΠΏΡ ΠΊΠΎΠΆΠΈ: ΠΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ + ΠΠΈΡΠ½Π°Ρ + ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ + Π‘ΡΡ
Π°Ρ + Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡ
ΠΎΠ΄Π° Π·Π° ΠΊΠΎΠΆΠ΅ΠΉ: Π‘ΡΡ
Π°Ρ ΠΊΠΎΠΆΠ°, ΡΡΠ°ΡΠ΅ΡΡΠ°Ρ ΠΊΠΎΠΆΠ°, ΠΌΠΎΡΡΠΈΠ½Ρ ΠΈ ΡΠΎΠ½ΠΊΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΆΠΈΡΠ½Π°Ρ ΠΊΠΎΠΆΠ°, Π·Π°ΠΊΡΠΏΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΡ
ΠΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ
ΠΡΠΈΡΠ°ΡΡΠ΅Π΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π»ΠΈΡΠ°: ΠΠ°ΡΠ»ΠΎ Π°ΠΏΠ΅Π»ΡΡΠΈΠ½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΡΠΊΠΈ, ΡΠΎΠΊ Π»ΠΈΡΡΡΠ΅Π² Π°Π»ΠΎΡ Π²Π΅ΡΠ°, Π²ΠΎΠ΄Π°, ΡΠΊΡΡΡΠ°ΠΊΡ ΡΠ²Π΅ΡΠΎΠ² ΡΠΎΠΌΠ°ΡΠΊΠΈ, ΡΠΊΡΡΡΠ°ΠΊΡ ΡΠΎΠΊΠ° Π»ΠΈΡΡΡΠ΅Π² ΠΎΠ»ΠΈΠ²Ρ, ΠΌΠ°ΡΠ»ΠΎ ΡΠΈ, ΠΊΠΎΠΊΠΎΠΈΠ» ΠΈΠ·Π΅ΡΠΈΠΎΠ½Π°Ρ Π½Π°ΡΡΠΈΡ, ΠΌΠ΅ΡΠΈΠ»ΠΎΠ»Π΅ΠΈΠ»ΡΠ°ΡΡΠ°Ρ Π½Π°ΡΡΠΈΡ, Π»Π°ΡΡΠΈΠ»Π±Π΅ΡΠ°ΠΈΠ½, Π³ΡΠ°ΡΠ³ΠΈΠ΄ΡΠΎΠΊΡΠΈΠΏΡΠΎΠΏΠΈΠ»ΡΡΠΈΠΌΠΎΠ½ΠΈΡ Ρ
Π»ΠΎΡΠΈΠ΄, Π³Π»ΡΠΊΠΎΠ½ΠΎΠ»Π°ΠΊΡΠΎΠ½, Π±Π΅Π½Π·ΠΎΠ°Ρ Π½Π°ΡΡΠΈΡ
Π Π΅ΡΠΈΠ½ΠΎΠ»ΠΎΠ²ΡΠΉ ΠΊΡΠ΅ΠΌ: Π Π΅ΡΠΈΠ½ΠΎΠ», Π²ΠΎΠ΄Π°, Π°Π»ΠΎΡ Π²Π΅ΡΠ°, Π³ΠΈΠ°Π»ΡΡΠΎΠ½Π°Ρ Π½Π°ΡΡΠΈΡ, ΠΏΠΎΠ΄ΡΠΎΠ»Π½Π΅ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΠ»ΠΎ, ΡΠΊΡΡΡΠ°ΠΊΡ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΡΠ°Ρ, ΠΌΠ°ΡΠ»ΠΎ ΡΠΈ, ΡΠΎΠΊΠΎΡΠ΅ΡΠΎΠ», Π°ΡΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠ΅ ΠΏΠ°Π»ΡΠΌΠΎΠ²ΠΎΠ΅ ΠΌΠ°ΡΠ»ΠΎ, ΠΏΠ΅Π½ΡΠΈΠ»Π΅Π½Π³Π»ΠΈΠΊΠΎΠ»Ρ, ΠΌΠ°ΡΠ»ΠΎ ΠΆΠΎΠΆΠΎΠ±Π°, ΠΏΠ°Π½ΡΠ΅Π½ΠΎΠ», ΡΠΎΡΡΠΎΠ»ΠΈΠΏΠΈΠ΄Ρ, ΠΏΡΠΎΠΏΠΎΠ»ΠΈΡ, ΠΏΠΎΠ»ΠΈΡΠΎΡΠ±Π°Ρ 20, ΡΠΎΡΡΠ°Ρ ΠΊΠ°Π»ΠΈΡ, Π³Π»ΠΈΡΠ΅ΡΠΈΠ»ΡΡΠ΅Π°ΡΠ°Ρ, ΡΠ΅Π½ΠΎΠΊΡΠΈΡΡΠ°Π½ΠΎΠ».
, ΠΡΠΈΠ»Π³Π΅ΠΊΡΠΈΠ»Π³Π»ΠΈΡΠ΅ΡΠΈΠ½, ΠΊΡΠ°Π½ΡΠ°Π½ΠΎΠ²Π°Ρ ΠΊΠ°ΠΌΠ΅Π΄Ρ, ΡΠ΅ΡΠΈΠ»ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΡ, ΡΡΠ΅Π°ΡΠΈΠ½ΠΎΠ²Π°Ρ ΠΊΠΈΡΠ»ΠΎΡΠ°, Π³Π»ΠΈΡΠ΅ΡΠΈΠ½
Π‘ΡΠ²ΠΎΡΠΎΡΠΊΠ° Ρ Π³ΠΈΠ°Π»ΡΡΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΊΠΈΡΠ»ΠΎΡΠΎΠΉ: ΠΠΈΠ°Π»ΡΡΠΎΠ½ΠΎΠ²Π°Ρ ΠΊΠΈΡΠ»ΠΎΡΠ°, Π²ΠΈΡΠ°ΠΌΠΈΠ½ Π‘, Π²ΠΈΡΠ°ΠΌΠΈΠ½ Π, Π΄Π΅ΠΈΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²ΠΎΠ΄Π°, Π³Π°ΠΌΠ°ΠΌΠ΅Π»ΠΈΡ, Π°Π»ΠΎΡ Π²Π΅ΡΠ°, ΠΊΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π³Π»ΠΈΡΠ΅ΡΠΈΠ½, ΠΌΠ°ΡΠ»ΠΎ ΠΆΠΎΠΆΠΎΠ±Π°, Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ°ΠΉ Π΄ΠΈΠΊΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Ρ, ΡΡΠΈΠ»Π³Π΅ΠΊΡΠΈΠ»Π³Π»ΠΈΡΠ΅ΡΠΈΠ½, ΡΠ΅ΡΠΈΠ½ΠΎΠ», ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΠ»ΠΎ Π³Π΅ΡΠ°Π½ΠΈ, ΡΠ΅Π»Π»ΡΠ»ΠΎΠ·Π°
ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° 101
1. ΠΡΠΎΠΌΡΡΡ + Π²ΡΡΡΡΠΈΡΡ: ΠΏΡΠΎΠΌΡΡΡ ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΡΡΠ°ΡΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΈ Π΄Π°ΡΡ ΠΈΠΌ Π²ΡΡΠΎΡ
Π½ΡΡΡ
2. Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΡΠΈΠΊΠ΅ΡΠΊΠΈ: Π²ΡΠ΅ Π½Π°ΡΠΈ Π±Π°Π½ΠΊΠΈ, Π±ΡΡΡΠ»ΠΊΠΈ, ΡΡΠ±ΠΈΠΊΠΈ ΠΈ Π²Π½Π΅ΡΠ½ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Ρ Ρ Π²Π°ΡΠΈΠΌ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΈ ΡΡΠΈΠΊΠ΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π³Π΄Π΅ Π²Ρ ΠΆΠΈΠ²Π΅ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΠ²Π΅ΠΆΠΈΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠ΅ΡΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°!
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈ ΡΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π²ΠΌΠ΅ΡΡΠ΅
ΠΎΡΠΈΡΠ°ΡΡΠ΅Π΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π»ΠΈΡΠ°
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΡΡ
ΠΎΠ΄Π΅ Π·Π° ΠΊΠΎΠΆΠ΅ΠΉ.