ΠΠΎΡΡΠ΅ΠΆΠΈ (tuple) | Python 3 Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠ°ΠΊΠΎΠΌ ΡΠΈΠΏΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠΈ (tuple) ΠΈ ΠΎ ΡΠΎΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΠΎΡΡΠ΅ΠΆ, ΠΏΠΎ ΡΡΡΠΈ — Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΏΠΈΡΠΊΠΈ?
- ΠΠ°ΡΠΈΡΠ° ΠΎΡ Π΄ΡΡΠ°ΠΊΠ°. Π’ΠΎ Π΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆ Π·Π°ΡΠΈΡΠ΅Π½ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΡ (ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ), ΡΠ°ΠΊ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ (ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ).
- ΠΠ΅Π½ΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠ°Π±Ρ Π½Π΅ Π±ΡΡΡ Π³ΠΎΠ»ΠΎΡΠ»ΠΎΠ²Π½ΡΠΌ:
>>> a = (1, 2, 3, 4, 5, 6) >>> b = [1, 2, 3, 4, 5, 6] >>> a.__sizeof__() 36 >>> b.__sizeof__() 44
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ:
>>> d = {(1, 1, 1) : 1} >>> d {(1, 1, 1): 1} >>> d = {[1, 1, 1] : 1} Traceback (most recent call last): File "", line 1, in d = {[1, 1, 1] : 1} TypeError: unhashable type: 'list'
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ?
Π‘ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ — Π° ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΆ:
>>> a = tuple() # Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ tuple() >>> a () >>> a = () # Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»Π° ΠΊΠΎΡΡΠ΅ΠΆΠ° >>> a () >>>
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°:
>>> a = ('s') >>> a 's'
Π‘ΡΠΎΠΏ. ΠΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΡΡΡΠΎΠΊΠ°. ΠΠΎ ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ°ΠΊ? ΠΡ ΠΆΠ΅ ΠΊΠΎΡΡΠ΅ΠΆ Ρ ΠΎΡΠ΅Π»ΠΈ! ΠΠ°ΠΊ ΠΆΠ΅ Π½Π°ΠΌ ΠΊΠΎΡΡΠ΅ΠΆ ΠΏΠΎΠ»ΡΡΠΈΡΡ?
>>> a = ('s', ) >>> a ('s',)
Π£ΡΠ°! ΠΠ°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ! ΠΡΠ΅ Π΄Π΅Π»ΠΎ — Π² Π·Π°ΠΏΡΡΠΎΠΉ. Π‘Π°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡΠ°Ρ, ΡΠΎΡΠ½Π΅Π΅, Π·Π½Π°ΡΠ°Ρ ΡΠΎ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ ΡΡΡΠΎΠΊ ΠΈ ΠΏΡΠΎΡΠΈΠΌ ΠΌΡΡΠΎΡΠΎΠΌ. ΠΡΡΠ°ΡΠΈ, ΠΊΠΎΡΡΠ΅ΠΆ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΡΠ°ΠΊ:
>>> a = 's', >>> a ('s',)
ΠΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π½Π΅ ΡΠ²Π»Π΅ΠΊΠ°ΠΉΡΠ΅ΡΡ, ΠΈ ΡΡΠ°Π²ΡΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ Π±ΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ.
ΠΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ΅ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠ΅ΡΠ»ΠΎΠ²ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ tuple()
>>> a = tuple('hello, world!') >>> a ('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!')
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ
ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΡΠΏΠΈΡΠΎΠΊ (ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΠ»ΠΎ, ΠΌΠ΅ΡΠΎΠ΄Ρ index() ΠΈ count() ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ). ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π³ΠΎΡΠ΄ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π° python — ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ :
a, b = b, a
pythonworld.ru
Python. Π£ΡΠΎΠΊ 8. ΠΠΎΡΡΠ΅ΠΆΠΈ (tuple)
ΠΠ°Π½Π½ΡΠΉ ΡΡΠΎΠΊ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌ (tuple) Π² Python. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π»ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΒ ΠΈΡ , Π° Π½Π΅ ΡΠΏΠΈΡΠΊΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ Π·Π°ΡΡΠΎΠ½Π΅ΠΌ ΡΠ΅ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΡΡΠ΅ΠΆ (tuple) Π² Python?
ΠΠΎΡΡΠ΅ΠΆ (tuple) β ΡΡΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠΏΠΈΡΠΎΠΊ. ΠΠ°ΠΊ Π²Ρ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π·Π½Π°Π΅ΡΠ΅, Π° Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΠ΅Π΄ΡΠΌΡΠΌ ΡΡΠΎΠΊΠΎΠΌ, ΡΠΏΠΈΡΠΎΠΊ β ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . Π’.Π΅. Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ a = [1, 2, 3] ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ 2 Π½Π° 15, ΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°.
>>> a = [1, 2, 3] >>> print(a) [1, 2, 3] >>> a[1] = 15 >>> print(a) [1, 15, 3]
Π‘Β ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Ρ.ΠΊ. ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π΅Π»ΡΠ·Ρ.
>>> b = (1, 2, 3) >>> print(b) (1, 2, 3) >>> b[1] = 15 Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> b[1] = 15 TypeError: 'tuple' object does not support item assignment
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π² Python?
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ β ΡΡΠΎ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π΄Π°Π½Π½ΡΡ , ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ, ΡΠΎΠ³Π΄Π°,Β ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ ΠΊΡΡΠ°ΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅, ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ½ΡΡΠΎΠ² β Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΌΠ΅ΡΡΠ°. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ.
>>> lst = [10, 20, 30] >>> tpl = (10, 20, 30) >>> print(lst.__sizeof__()) 32 >>> print(tpl.__sizeof__()) 24
ΠΠΎ-Π²ΡΠΎΡΡΡ β ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠΈ (Ρ.Π΅. Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Ρ.ΠΏ. Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΡΠΈΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ).Β ΠΠ°ΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Ρ ΡΠ»ΠΎΠ²Π°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
>>> a = () >>> print(type(a)) <class 'tuple'> >>> b = tuple() >>> print(type(b)) <class 'tuple'>
ΠΠΎΡΡΠ΅ΠΆ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΡΡΠ³Π»ΡΠ΅.
>>> a = (1, 2, 3, 4, 5) >>> print(type(a)) <class 'tuple'> >>> print(a) (1, 2, 3, 4, 5)
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ tuple().
>>> a = tuple((1, 2, 3, 4)) >>> print(a) (1, 2, 3, 4)
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ°
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΏΠΈΡΠΊΠ° β ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠΎ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ β ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Π½Π΅Π»ΡΠ·Ρ!
>>> a = (1, 2, 3, 4, 5) >>> print(a[0]) 1 >>> print(a[1:3]) (2, 3) >>> a[1] = 3 Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> a[1] = 3 TypeError: 'tuple' object does not support item assignment
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ
Π£Π΄Π°Π»ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΊΠΎΡΡΠ΅ΠΆΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
>>> a = (1, 2, 3, 4, 5) >>> del a[0] Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> del a[0] TypeError: 'tuple' object doesn't support item deletion
ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ.
>>> del a >>> print(a) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> print(a) NameError: name 'a' is not defined
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ° Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ
ΠΠ° Π±Π°Π·Π΅ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π²Π΅ΡΠ½ΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π² ΠΊΠΎΡΡΠ΅ΠΆ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ tuple().
>>> lst = [1, 2, 3, 4, 5] >>> print(type(lst)) <class 'list'> >>> print(lst) [1, 2, 3, 4, 5] >>> tpl = tuple(lst) >>> print(type(tpl)) <class 'tuple'> >>> print(tpl) (1, 2, 3, 4, 5)
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ.
>>> tpl = (2, 4, 6, 8, 10) >>> print(type(tpl)) <class 'tuple'> >>> print(tpl) (2, 4, 6, 8, 10) >>> lst = list(tpl) >>> print(type(lst)) <class 'list'> >>> print(lst) [2, 4, 6, 8, 10]
P.S.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠ΅ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Pandas
<<< Python. Π£ΡΠΎΠΊ 7. Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ (list)Β Β Python. Π£ΡΠΎΠΊ 9. Π‘Π»ΠΎΠ²Π°ΡΠΈ (dict)>>>
devpractice.ru
ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆ / Habr
Π Python, Π΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΡΠΈΠΏΠ° β ΡΠΏΠΈΡΠΎΠΊ (list) ΠΈ ΠΊΠΎΡΡΠ΅ΠΆ (tuple). Π‘Π°ΠΌΠ°Ρ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ.ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² tuple:
>>> a = (1,2,3)
>>> a[0] = 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
ΠΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ°:
>>> b = (1,[1,2,3],3)
>>> b[1]
[1, 2, 3]
>>> b[1].append(4)
>>> b
(1, [1, 2, 3, 4], 3)
ΠΠ½ΡΡΡΠΈ CPython (ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°), ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π»ΠΈΡΡ ΠΈΠ· ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ (ΡΡΡΠ»ΠΎΠΊ) Π½Π° Python ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ.Π΅. ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ½ΠΈ Π½Π΅ Ρ ΡΠ°Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ΄ΠΎΠΌ Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠ»ΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π΅ΡΡ ΠΊΡΠΎ-ΡΠΎ ΡΡΡΠ»Π°Π΅ΡΡΡ, ΡΠΎ ΠΎΠ½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΡΠ΅ΠΆΠΈ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π½Π΅ ΡΠ°ΠΊ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Python ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ, Π½ΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΊΠΎΠ³Π΄Π°:
- ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (ΠΎΠ½ΠΈ Ρ ΡΠ°Π½ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠΈ)
- Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ
- ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠΈ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠΊΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΡΡΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ:
>>> import gc >>> def type_stats(type_obj): ... count = 0 ... for obj in gc.get_objects(): ... if type(obj) == type_obj: ... count += 1 ... return count ... >>> type_stats(tuple) 3136 >>> type_stats(list) 659 >>> import pandas >>> type_stats(tuple) 6953 >>> type_stats(list) 2455
ΠΡΡΡΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ vs ΠΏΡΡΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ
ΠΡΡΡΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΈΠ½Π³Π»ΡΠΎΠ½, Ρ.Π΅. Π² ΠΏΠ°ΠΌΡΡΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Python ΡΠΊΡΠΈΠΏΡΠ° Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΡΡΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΆ. ΠΡΠ΅ ΠΏΡΡΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΡΡΠΌΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ.
>>> a = ()
>>> b = ()
>>> a is b
True
>>> id(a)
4409020488
>>> id(b)
4409020488
>>> # Π CPython, ΡΡΠ½ΠΊΡΠΈΡ id Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, Π²Π΅Π΄Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ:
>>> a = []
>>> b = []
>>> a is b
False
>>> id(a)
4465566920
>>> id(b)
4465370632
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, Python ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ. ΠΡΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΠΌ 20 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Python ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ.
ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 20 Π³ΡΡΠΏΠΏ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π³ΡΡΠΏΠΏΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ° n, Π³Π΄Π΅ n ΠΎΡ 0 Π΄ΠΎ 20. ΠΠ°ΠΆΠ΄Π°Ρ Π³ΡΡΠΏΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄ΠΎ 2 000 ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠ΅ΡΠ²Π°Ρ Π³ΡΡΠΏΠΏΠ° Ρ ΡΠ°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°.
>>> a = (1,2,3) >>> id(a) 4427578104 >>> del a >>> b = (1,2,4) >>> id(b) 4427578104
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ a ΠΈ b ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π·Π°Π½ΡΠ»ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ²
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, ΡΠ°ΠΊΡΡ ΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ½ΡΡΡ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ, Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΠ΅Π»Π΅Π½Π½Π°Ρ Π½Π° ΠΏΡΡΡΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ. ΠΡΠ»ΠΈ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ, ΡΠΎ ΠΎΠ½ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ.
>>> a = []
>>> id(a)
4465566792
>>> del a
>>> b = []
>>> id(b)
4465566792
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ°
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠΎΠ², Python Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π΅ΡΡΡ Π½Π°Π±ΠΎΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΡΡΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ, Python Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΡΠΈΡΡΠΌ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ Π·Π°ΠΏΠ°ΡΠΎΠΌ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΡΡΡΡΡ ΡΡΠ΅Π΅ΠΊ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ° β ΡΠ΅ΠΌ ΠΎΠ½ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΊΡΡΡΡΡ ΡΠ»ΠΎΡΠΎΠ² ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΡΡΡΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΈΠΊΠ»Π΅.
ΠΠ°ΡΡΠ΅ΡΠ½ ΡΠΎΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ: 0, 4, 8, 16, 25, 35, 46, 58, 72, 88,β¦
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΎΠΊ Ρ 8 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΡΡΠ΅Π΅ΠΊ Π² Π½ΡΠΌ ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈ Python ΡΡΠ°Π·Ρ ΡΠ°ΡΡΠΈΡΠΈΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΎ 16 ΡΡΠ΅Π΅ΠΊ, Π³Π΄Π΅ 9 ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π·Π°Π½ΡΡΡ ΠΈ Π²ΠΈΠ΄Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π€ΠΎΡΠΌΡΠ»Π° Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Python:
>>> def get_new_size(n_items):
... new_size = n_items + (n_items // 2 ** 3)
... if n_items < 9:
... new_size += 3
... else:
... new_size += 6
...
... return new_size
...
>>> get_new_size(9)
16
Π‘ΠΊΠΎΡΠΎΡΡΡ
ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΡΠΈ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΡΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΏΠΎ Π±ΠΎΠ»ΡΠ½ΠΈΡΠ΅, ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠ»Π΅Π³ΠΊΠ° Π±ΡΡΡΡΠ΅Π΅ ΡΠΏΠΈΡΠΊΠΎΠ². Π£ Raymond Hettinger Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΠΈΡΡ Π² ΡΠΊΠΎΡΠΎΡΡΠΈ Π½Π° stackoverflow.
P.S.: Π― ΡΠ²Π»ΡΡΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ.
habr.com
ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΏΠΈΡΠΊΡ
Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²ΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ Π² Python 3.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΡΡΠ΅ΠΆ
ΠΠΎΡΡΠ΅ΠΆ β ΡΡΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π·Π°Π΄Π°Π½Π½ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΏΠΈΡΠΎΠΊ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΊΠ°Π·Π°Π²:
b = [4, 6, 8] print(b) [4, 6, 8] b[1] = 13 print(b) [4, 13, 8]
ΠΡΠ»ΠΈ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠ΄, Π½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠΉΠ΄Π΅Ρ, Π° Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π°Π΄ΠΏΠΈΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Π² python Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΊΠΎΡΡΠ΅ΠΆ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠ°Π²Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΡΠ³ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΡΠΎΡΡΠΎΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ sizeof. ΠΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π±Π°ΠΉΡΠ°Ρ :
a = (2, 4, 6, 8, 10, 12) b = [2, 4, 6, 8, 10, 12] a.__sizeof__() 36 b.__sizeof__() 44
ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆ (Π² ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 36 Π±Π°ΠΉΡΠΎΠ², Π° ΡΠΏΠΈΡΠΎΠΊ (Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ) β 44 Π±Π°ΠΉΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅
ΠΠΎΡΡΠ΅ΠΆ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠΏΠΈΡΠΎΠΊ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΊΡΡΠ³Π»ΡΡ , Π° Π½Π΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ . ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΡΡΠΎΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° ΠΈΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ. Π ΡΠΎΡΠ½Π΅Π΅ Π΄Π»Ρ Π½Π΅ΠΏΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ Π½ΠΎΠ»Ρ. ΠΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ° (Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ).
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π² Python ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°:
a = (1,2,3)
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
a = tuple([1,2,3])
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΡΡΠ΅ΠΆ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ:
n = ("a", "b", "Ρ", "d", "e") print(n[-1]) 'e'
Π’ΠΎ Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π½Π΅ Ρ Π½Π°ΡΠ°Π»Π°, Π° Ρ ΠΊΠΎΠ½ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΡΡ Π·Π°ΠΏΠΈΡΡ:
a =(3,) print(a[0]) 3
ΠΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΠ΄ΠΈΠ½, ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠΎΡΡΡ Π·Π°ΠΏΡΡΠ°Ρ.
ΠΠ½ΠΎΠ³Π΄Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΡΠ»ΡΠΆΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
a = tuple(i for i in range(0, 10)) print(a) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
ΠΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° tuple.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ΅Π·Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ β ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΡ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ΅Π·.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΡΠ΅Π·Π°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π² ΠΏΡΠ½ΠΊΡΠ΅ βΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡβ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. Π’ΠΎ Π΅ΡΡΡ, Π² Python Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄:
b = (4, 6, 8) print(b[0]) print(b[1]) 4 6
ΠΠ· ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΈ ΡΡΠ΅Π·. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ ΡΡΠ΅Π·Π°. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΡΠΎΡΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΡΠ΅Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
b = (5, 3.6, "ΠΊΠ²Π°Π΄ΡΠ°Ρ", 15, 'Π') print(b[1]) print(b[2:4]) 3.6 ('ΠΊΠ²Π°Π΄ΡΠ°Ρ', 15)
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠΎΡΡΠ΅ΠΆΠΈ Π² python ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: index() ΠΈ count(). ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
a = (32, 33, 34, 33, 34, 33) print(a.index(33)) 1
ΠΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Β«33Β» Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .
ΠΠ΅ΡΠΎΠ΄ count ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅.
a = (32, 33, 34, 33, 34, 33) print(a.count(33)) 3
ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΈΡΠ»ΠΎ 3, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅ ΠΈΡΠΊΠΎΠΌΠΎΠ΅ ΡΠΈΡΠ»ΠΎ 33 ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ 3 ΡΠ°Π·Π°.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ°Ρ Π½Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ
ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², Ρ ΠΎΡΡ ΠΎΠ½ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π°ΠΆΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π² python (ΠΈΠ»ΠΈ namedtuple) Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ . Π’Π°ΠΊ, ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². Π ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ namedtuple.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ namedtuple, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ collections. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ import collecions *
. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ namedtuple Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: collections.namedtuple( [ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ] )
. ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ΅, Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°:
from collections import namedtuple Flower = namedtuple('Flower' , 'color cost comment') rose = Flower('red', 5, 'beautiful') print(rose.cost) 5
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π». ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ namedtuple ΡΠ°Π·ΠΎΠ±ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ split. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ cost. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ: rose.color
, rose.comment
.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ. Π’Π°ΠΊ, Π² Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ color, cost ΠΈ comment. Π ΠΏΡΠΈ Π²ΡΠ΅ΠΌ ΠΏΡΠΈ ΡΡΠΎΠΌ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠΏΠΈΡΠ°Π² ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ:
print(rose[0]) red
Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ (ΠΈΠ»ΠΈ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ). ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° array. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Ρ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆ.
ΠΠ· ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π΅ΡΡΡ Π²ΡΡ ΠΎΠ΄ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π² Python ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠ°ΡΠΈΠ°Π½Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½ΠΈΠΆΠ΅:
a = [(1,2,3),(4,5,6)]
CΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
ΠΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ sorted, Π²ΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ:
a = ('One', 'Two', 'Three') a = tuple(sorted(a)) print(a) ('One', 'Three', 'Two')
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° Python ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΈ ΠΏΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ:
a = (3, 1, 5 ,2, 6, 7) a = tuple(sorted(a)) print(a) (1, 2, 3, 5, 6, 7)
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ sorted Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ, Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ tuple ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΡ.
Π ΡΠΏΠΈΡΠΎΠΊ
ΠΠΎΡΡΠ΅ΠΆ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ:
a = (1,2,3) a = list(a) print(a) [1, 2, 3]
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΡΡΠ΅ΠΆ Π±ΡΠ» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² ΡΠΏΠΈΡΠΎΠΊ Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π² ΠΊΠΎΡΡΠ΅ΠΆ:
a = [1, 2.6, "ΠΊΠ²Π°Π΄ΡΠ°Ρ"] a = tuple(a) print(a) (1, 2.6, "ΠΊΠ²Π°Π΄ΡΠ°Ρ")
Π ΡΠ»ΠΎΠ²Π°ΡΡ
Π‘Π»ΠΎΠ²Π°ΡΡ β ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² Python. ΠΠ½, ΠΊΠ°ΠΊ ΠΈ ΡΠΏΠΈΡΠΎΠΊ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° β Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ Π°Π½Π³Π»ΠΎ-ΡΡΡΡΠΊΠΈΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΌ. Π Π½Π΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄: house βΠ΄ΠΎΠΌ, flat β ΠΊΠ²Π°ΡΡΠΈΡΠ°, window β ΠΎΠΊΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΠ°ΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ, ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΠΌΠ°Ρ ΡΠΈΠ³ΡΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ:
{'house': 'Π΄ΠΎΠΌ', 'flat': 'ΠΊΠ²Π°ΡΡΠΈΡΠ°', 'window': 'ΠΎΠΊΠ½ΠΎ'}
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ°Ρ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π½Π° ΡΠΊΡΠ°Π½ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΎΠ½ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² Python ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ Π² ΡΠ»ΠΎΠ²Π°ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ dict.
a = (('a', 2),('b', 4)) a = dict(a) print(a) {'a': 2, 'b': 4}
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΡΠΈΡΠ΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ. ΠΠ½Π°ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΡΠ»ΠΎΠ²Π°ΡΡ.
Π ΡΡΡΠΎΠΊΡ
Π§ΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π² python ΠΊΠΎΡΡΠ΅ΠΆ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ join. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
a = ('one','two','three') b = ''.join(a) c = ','.join(a) print(b) print(c) onetwothree one,two,three
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β Π±Π΅Π· ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ.
Π§Π΅ΠΌ ΠΆΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅? Π Π°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠ΅ΠΌ ΠΈΡ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ, ΡΠΎ Π»ΡΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ. ΠΠ»ΡΡ β ΡΡΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°, ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠΈ.
all-python.ru
Python | ΠΠΎΡΡΠ΅ΠΆΠΈ
ΠΠΎΡΡΠ΅ΠΆΠΈ
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 26.04.2017
ΠΠΎΡΡΠ΅ΠΆ (tuple) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠΏΠΈΡΠΎΠΊ Π·Π° ΡΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ (immutable) ΡΠΈΠΏΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΡΡΠΌΠΈ:
user = ("Tom", 23) print(user)
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΠΎΠ±ΠΎΠΊ:
user = "Tom", 23 print(user)
ΠΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΊΠΎΡΡΠ΅ΠΆ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΡΡΡ:
user = ("Tom",)
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΡΠ½ΠΊΡΠΈΡ tuple(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆ:
users_list = ["Tom", "Bob", "Kate"] users_tuple = tuple(users_list) print(users_tuple) # ("Tom", "Bob", "Kate")
ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Ρ Π½ΡΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ Π½Π°ΡΠ°Π»Π° ΡΠΏΠΈΡΠΊΠ° ΠΈ Ρ -1 ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΊΠΎΠ½ΡΠ° ΡΠΏΠΈΡΠΊΠ°:
users = ("Tom", "Bob", "Sam", "Kate") print(users[0]) # Tom print(users[2]) # Sam print(users[-1]) # Kate # ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΡΠΎ 2 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ 4 print(users[1:4]) # ("Bob", "Sam", "Kate")
ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΆ — Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ (immutable), ΡΠΎ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. Π’ΠΎ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ:
users[1] = "Tim"
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΆ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
user = ("Tom", 22, False) name, age, isMarried = user print(name) # Tom print(age) # 22 print(isMarried) # False
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΠΊΠΎΡΡΠ΅ΠΆ:
def get_user(): name = "Tom" age = 22 is_married = False return name, age, is_married user = get_user() print(user[0]) # Tom print(user[1]) # 22 print(user[2]) # False
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ len() ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°:
user = ("Tom", 22, False) print(len(user)) # 3
ΠΠ΅ΡΠ΅Π±ΠΎΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ for ΠΈ while. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for:
user = ("Tom", 22, False) for item in user: print(item)
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° while:
user = ("Tom", 22, False) i = 0 while i < len(user): print(user[i]) i += 1
ΠΠ°ΠΊ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ in ΠΊΠΎΡΡΠ΅ΠΆ
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅:
user = ("Tom", 22, False) name = "Tom" if name in user: print("ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·ΠΎΠ²ΡΡ Tom") else: print("ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΠΌΡ")
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ
ΠΠ΄ΠΈΠ½ ΠΊΠΎΡΡΠ΅ΠΆ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
countries = ( ("Germany", 80.2, (("Berlin",3.326), ("Hamburg", 1.718))), ("France", 66, (("Paris", 2.2),("Marsel", 1.6))) ) for country in countries: countryName, countryPopulation, cities = country print("\nCountry: {} population: {}".format(countryName, countryPopulation)) for city in cities: cityName, cityPopulation = city print("City: {} population: {}".format(cityName, cityPopulation))
ΠΠ΄Π΅ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ countries, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ°Π½Ρ, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ — ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΡΠ°Π½Π°.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ, ΡΠΈΡΠ»Π΅Π½Π½ΠΎΡΡΡ Π΅Π΅ Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΡ ΠΈ Π³ΠΎΡΠΎΠ΄Π°. ΠΠΎΡΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π³ΠΎΡΠΎΠ΄ — ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ΄Π° ΠΈ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΡΡΡ Π΅Π³ΠΎ Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΡ.
metanit.com
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ. ΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π½Π° Python ΡΠΈΡΠ΅ / Habr
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΠΈΡΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ «namedtuple», ΠΊΠΎΡΠΎΡΡΠΉ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ½ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ. ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΡ ΡΠΈΡ Π² ΠΏΠΈΡΠΎΠ½Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΡΡΡΠ° Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π°.
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ? Π₯ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΡΠ°Π·ΠΌΡΡΠ»ΡΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ β ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ.
ΠΠΎΡΡΠ΅ΠΆΠΈ Π² ΠΏΠΈΡΠΎΠ½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΡΡΠ΅ΠΆΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ β ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
>>> tup = ('hello', object(), 42)
>>> tup
('hello', <object object at 0x105e76b70>, 42)
>>> tup[2]
42
>>> tup[2] = 23
TypeError: "'tuple' object does not support item assignment"
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠΌ Π² ΠΊΠΎΡΡΠ΅ΠΆΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°.
Π’Π°ΠΊΠΆΠ΅, ΠΊΠΎΡΡΠ΅ΠΆ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ. Π’ΡΠΆΠ΅Π»ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π±Ρ Π΄Π²Π° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈΠΌΠ΅Π»ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠ΅ Π² Π½ΠΈΡ . ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ Π»ΡΠ³ΠΊΠΈΠΌΠΈ Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° ΡΠΎ βslip-of-the-mindβ Π±Π°Π³Π°ΠΌΠΈ, Π³Π΄Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΡΠ°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ.
Π¦Π΅Π»Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ β ΡΠ΅ΡΠΈΡΡ ΡΡΠΈ Π΄Π²Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π² Π½ΠΈΡ .
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΡΠΎ, ΡΠΌ…, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π² Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ, ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π²Π°Ρ ΠΎΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΡΠ΄ΡΠΌΡΠ²Π°Π½ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΏΡΡΠ΅ΠΉ ΡΠΈΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊ Π΄Π»Ρ Π²Π°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ².
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ:
>>> from collections import namedtuple
>>> Car = namedtuple('Car' , 'color mileage')
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ collections
. ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² Python 2.6. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
«Car» Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΠ»ΡΠΌΠΈ: «color» ΠΈ «mileage».
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΡΠΌ Π·Π΄Π΅ΡΡ. ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ ΠΏΠΎΠ»Ρ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΡ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ «color mileage»?
ΠΡΠ²Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΡΠΈΠΊΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ split()
Π½Π° ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΎΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Π±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
>>> 'color mileage'.split()
['color', 'mileage']
>>> Car = namedtuple('Car', ['color', 'mileage'])
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΠΌΡΠ½ ΠΏΠΎΠ»Π΅ΠΉ Π½Π°ΠΏΡΡΠΌΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΡΠΈΠ»Ρ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΠΈΠ½ΠΈΠΉ:
>>> Car = namedtuple('Car', [
... 'color',
... 'mileage',
... ])
ΠΠ°ΠΊ Π±Ρ Π²Ρ Π½ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΠ΅ΠΉΡΠ°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ «car» ΡΠ΅ΡΠ΅Π· ΡΠ°Π±ΡΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Car
. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ»Π°ΡΡ Car
Π²ΡΡΡΠ½ΡΡ ΠΈ Π΄Π°ΡΡ Π΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ «color» ΠΈ «mileage»:
>>> my_car = Car('red', 3812.4)
>>> my_car.color
'red'
>>> my_car.mileage
3812.4
Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ‘*’ Π΄Π»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ:
>>> color, mileage = my_car
>>> print(color, mileage)
red 3812.4
>>> print(*my_car)
red 3812.4
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠΌ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ ΡΠ΅ΡΠ΅Π· ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π²Ρ Π²ΡΡ Π΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½ΠΈΠΌ ΡΠ΅ΡΠ΅Π· ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ΠΈΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ:
>>> my_car[0]
'red'
>>> tuple(my_car)
('red', 3812.4)
ΠΡ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²Π°ΠΌ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠΏΠ°ΡΡΡ ΠΎΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ:
>>> my_car
Car(color='red' , mileage=3812.4)
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΡ
ΠΏΠΎΠ»Π΅ΠΉ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ AttributeError
:
>>> my_car.color = 'blue'
AttributeError: "can't set attribute"
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π² ΠΏΠΈΡΠΎΠ½Π΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ ΠΎΠ½ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ «Π»ΡΡΡΠ΅», ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ.
Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΡΡ ΡΡΠ΄ΠΈΡΡ ΠΎ Π½ΠΈΡ β ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠ°ΡΠΊΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ , ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΊΠ»Π°ΡΡ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°.
>>> Car = namedtuple('Car', 'color mileage')
>>> class MyCarWithMethods(Car):
... def hexcolor(self):
... if self.color == 'red':
... return '#ff0000'
... else:
... return '#000000'
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ MyCarWithMethods ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ hexcolor() ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ:
>>> c = MyCarWithMethods('red', 1234)
>>> c.hexcolor()
'#ff0000'
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠΊΠ»ΡΠΆΠ΅, ΡΠ°ΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΡΡΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»Π°ΡΡ Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΠΎ Π²Ρ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅Π»ΠΈΡΡ ΡΠ΅Π±Π΅ Π½ΠΎΠ³Ρ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°Π²Π΅ΡΠ·Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΡΡΡΠΎΠ΅Π½Ρ Π²Π½ΡΡΡΠΈ. ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ._fields Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°:
>>> Car = namedtuple('Car', 'color mileage')
>>> ElectricCar = namedtuple(
... 'ElectricCar', Car._fields + ('charge',))
ΠΡΠΎ Π΄Π°ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
>>> ElectricCar('red', 1234, 45.0)
ElectricCar(color='red', mileage=1234, charge=45.0)
ΠΡΠΎΠΌΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° _fields ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ. ΠΡΠ΅ ΠΈΡ ΠΈΠΌΠ΅Π½Π° Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΎ Π·Π½Π°ΠΊΠ° ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π°ΠΌ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ «ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅» ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΡΠΎΡΠ²ΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΡ ΡΠΎ Π·Π½Π°ΠΊΠ° ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ Π·Π΄Π΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: ΡΡΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ Π² ΡΡΠΈΡ ΠΈΠΌΠ΅Π½Π°Ρ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΈΠΌΡΠ½ Ρ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. Π’Π°ΠΊ ΡΡΠΎ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ , Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ!
Π― Ρ ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π³Π΄Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ Ρ ΠΌΠ΅ΡΠΎΠ΄Π° _asdict(). ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠ»ΠΎΠ²Π°ΡΡ:
>>> my_car._asdict()
OrderedDict([('color', 'red'), ('mileage', 3812.4)])
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ Π΄Π»Ρ ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ JSON, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
>>> json.dumps(my_car._asdict())
'{"color": "red", "mileage": 3812.4}'
ΠΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ β ΡΡΠ½ΠΊΡΠΈΡ _replace(). ΠΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΡΡ(shallow) ΠΊΠΎΠΏΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²Π°ΠΌ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Ρ:
>>> my_car._replace(color='blue')
Car(color='blue', mileage=3812.4)
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° _make() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
>>> Car._make(['red', 999])
Car(color='red', mileage=999)
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π΄Π΅Π»Π°Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π»ΡΡΡΠ΅Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π― Π½Π°Ρ ΠΎΠΆΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΏΡΡΡ ΠΎΡ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΆΡΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΌΠ½Π΅ Π²ΡΡΠ°ΠΆΠ°ΡΡ ΠΌΠΎΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΠΎ. Π§Π°ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°ΡΡΡ ΡΡΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ, ΡΠΎ Ρ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Ρ Π»ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΆΠΈΠ·Π½Ρ ΠΌΠΎΠΈΡ ΠΊΠΎΠ²ΠΎΡΠΊΠ΅ΡΠΎΠ² Π»Π΅Π³ΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΡΠ°ΠΌΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠΌΡΡ(Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ) ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Ρ ΡΡΠ°ΡΠ°ΡΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΡΠ°Π΄ΠΈ ΠΈΡ ΠΏΠΎΠ»ΡΠ·Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΌΠ½Π΅ ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΠ΅, ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Π΅Π΅ ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π»ΡΠ³ΠΊΠΈΠΌ Π² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ. Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠΎΡΠΈΡ Π²Π΅ΡΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠ»ΠΎΡ ΠΎΠΉ Π²Π΅ΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΡ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ, ΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, Π±Π΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π° Python Π»ΡΡΡΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ.
- collections.namedtuple β ΠΊΡΠ°ΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
- ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠΈΡΠ΅, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π²Π°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌΠΈ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
- ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ (_), Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ β ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°.
habr.com
ΠΡΠ½ΠΎΠ²Ρ Python β ΠΊΡΠ°ΡΠΊΠΎ. Π§Π°ΡΡΡ 3. Π‘ΠΏΠΈΡΠΊΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΡΠ°ΠΉΠ»Ρ. / Habr
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ· Π³ΠΎΡΠΎΠ²ΡΡ Π³Π»Π°Π². ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ ΡΡΡΡ ΡΠ΅ΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ (Π½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½ ΡΡΠΎ Π±ΡΠ΄ΡΡ, Ρ ΠΎΡΡ ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΠΉ, ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ πΠ’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎ ΡΡΠΎ ΡΡΠΎ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Β«ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠΎΠΊΒ», Π΄Π°Π»ΡΡΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠΎΡΠ»ΠΈ Β«ΠΏΠΎ Π²Π΅ΡΡ Π°ΠΌΒ» ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΠ΅ ΠΊΠΎΠΌΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β ΡΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π½ΠΎΠ²ΠΎΡΡΡ, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ β ΠΏΡΠΎΡΡ ΠΏΡΠΎΠΉΡΠΈ .
Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠ»Π°Π²Π° ΡΡΠ΅ΡΡΡ. Β«List, tuple, etc.Β»
ΠΠΎΡΡΠ΅ΠΆΠΈ.
ΠΠΎΡΡΠ΅ΠΆΠΈ (Π°Π½Π³Π». tuple) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΊΡΡΠ³Π»ΡΡ
ΡΠΊΠΎΠ±ΠΊΠ°Ρ
, Π½ΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΡΠΎ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ.
>>> t = (2, 2.05, "Hello") >>> t (2, 2.0499999999999998, 'Hello') >>> (a, b, c) = t >>> print a, b, c 2 2.05 Hello >>> z, y, x = t >>> print z, y, x 2 2.05 Hello >>> a=1 >>> b=2 >>> a,b=b,a >>> print a,b 2 1 >>> x = 12, >>> x (12,)
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΊΠΎΡΡΠ΅ΠΆ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΈ Π² Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΡΡΠ΅ΠΆΠ° Π² Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΡΠΎΡ ΡΠ°ΠΊΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π΄Π°Π΅Ρ Π½Π°ΠΌ ΡΠ°ΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΎΠ²Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»ΠΌΠ΅Π½ΡΠ° (Π΅Π³ΠΎ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ΠΎΠΌ).
Π‘ΠΏΠΈΡΠΊΠΈ
Π ΠΠ°ΠΉΡΠΎΠ½Π΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°. ΠΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΡΡ (ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ) ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠΈΡΠΊΠΈ. ΠΠ½ΠΈ Π·Π°Π΄Π°ΡΡΡΡ ΡΡΠ΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
ΠΡΠΎΡΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅:
>>> a = [2, 2.25, "Python"] >>> a [2, 2.25, 'Python']
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΡ Π² ΡΠΏΠΈΡΠΎΠΊ
>>> b = list("help") >>> b ['h', 'e', 'l', 'p']
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π±Π΅ΡΠ΅ΠΌ ΠΊΡΠ±Ρ Π²ΡΠ΅Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΎΡ 0 Π΄ΠΎ 19. ΠΡΠΎΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ Ρ ΠΏΠ»Π°Π½ΠΈΡΡΡ ΠΏΠΎΡΠ²ΡΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅.
>>> c = [x ** 3 for x in range(20) if x%2==1] >>> c [1, 27, 125, 343, 729, 1331, 2197, 3375, 4913, 6859]
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΡΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ:
len(s) ΠΠ»ΠΈΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ s
x in s ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ ΡΡΡΠΎΠΊΠ΅. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True ΠΈΠ»ΠΈ False
x not in s = not x in s
s + s1 ΠΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ
s*n ΠΈΠ»ΠΈ n*s ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· n ΡΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½Π½ΠΎΠΉ s. ΠΡΠ»ΠΈ n
s[i] ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ i-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ s ΠΈΠ»ΠΈ len(s)+i-ΠΉ, Π΅ΡΠ»ΠΈ i
s[i:j:d] Π‘ΡΠ΅Π· ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ s ΠΎΡ i Π΄ΠΎ j Ρ ΡΠ°Π³ΠΎΠΌ d Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅
min(s) ΠΠ°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ s
max(s) ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ s
s[i] = x i-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° s Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° x
s[i:j:d] = t Π‘ΡΠ΅Π· ΠΎΡ i Π΄ΠΎ j (Ρ ΡΠ°Π³ΠΎΠΌ d) Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° (ΡΠΏΠΈΡΠΎΠΊ) t
del s[i:j:d] Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π·Π° ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΡΠ΄ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
append(x) ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠ½Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
count(x) Π‘ΡΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π²Π½ΡΡ
x
extend(s) ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ s
index(x) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ i, ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ s[i] == x. ΠΠΎΠ·Π±ΡΠΆΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ValueError, Π΅ΡΠ»ΠΈ x Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² s
insert(i, x) ΠΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ x Π² i-ΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ
pop(i) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ i-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ΄Π°Π»ΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
reverse() ΠΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² s Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ
sort([cmpfunc]) Π‘ΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ s. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π° ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ cmpfunc
ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Π² ΡΠΏΠΈΡΠΎΠΊ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ list, Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ β tuple.
ΠΠ± ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΅ΡΠ΅ ΡΠ°Π· ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ (ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈ Π΄Π»Ρ ΡΡΡΠΎΠΊ). ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½ΡΠΌΠ΅ΡΡΡΡΡΡ Ρ Π½ΡΠ»Ρ. ΠΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΊΠΎΠ½ΡΠ°. ΠΠ΅ΡΠ²ΡΠΉ Ρ ΠΊΠΎΠ½ΡΠ° ΡΠΏΠΈΡΠΊΠ° (ΡΡΡΠΎΠΊΠΈ) ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ -1.
>>> s = [0, 1, 2, 3, 4] >>> print s[0], s[-1], s[3] 0 4 3 >>> s[2] = -2 >>> print s [0, 1, -2, 3, 4] >>> del s[2] >>> print s [0, 1, 3, 4]
Π‘Π»ΠΎΠΆΠ½Π΅Π΅ ΠΎΠ±ΡΡΠΎΡΡ Π΄Π΅Π»Π° ΡΠΎ ΡΡΠ΅Π·Π°ΠΌΠΈ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΠ°ΠΉΡΠΎΠ½Π΅ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° Π½ΠΎΠΌΠ΅ΡΠ° Β«ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ²Β» ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ 0, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΎΡΡΠΌ β 1 ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ.
Π ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠ΅Π· Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
ΡΠΏΠΈΡΠΎΠΊ[Π½Π°ΡΠ°Π»ΠΎ: ΠΊΠΎΠ½Π΅Ρ: ΡΠ°Π³]
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π°ΡΠ°Π»ΠΎ ΡΡΠ΅Π·Π° ΡΠ°Π²Π½ΠΎ 0, ΠΊΠΎΠ½Π΅Ρ ΡΡΠ΅Π·Π° ΡΠ°Π²Π΅Π½ len(ΡΠΏΠΈΡΠΎΠΊ), ΡΠ°Π³ ΡΠ°Π²Π΅Π½ 1. ΠΡΠ»ΠΈ ΡΠ°Π³ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π²ΡΠΎΡΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Β«:Β» ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π·Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Π΅. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° Π² ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
>>> l = range(12) >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] >>> l[1:3] [1, 2] >>> l[-1:] [11] >>> l[::2] [0, 2, 4, 6, 8, 10] >>> l[0:1]=[-1,-1,-1] >>> l [-1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] >>> del l[:3] >>> l [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
Π‘Π»ΠΎΠ²Π°ΡΠΈ
Π‘Π»ΠΎΠ²Π°ΡΡ (Ρ ΡΡ, ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²) β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΈΠ΄Π° ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ
Π΅ΡΠΈ.
>>> h2 = {1:"one", 2:"two", 3:"three"} >>> h3 = {0:"zero", 5:"five"} >>> h4 = {"z":1, "y":2, "x":3} #Π¦ΠΈΠΊΠ» ΠΏΠΎ ΠΏΠ°ΡΠ΅ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ >>> for key, value in h2.items(): ... print key, " ", value ... 1 one 2 two 3 three #Π¦ΠΈΠΊΠ» ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ >>> for key in h3.keys(): ... print key, " ", h3[key] ... 0 zero 5 five #Π¦ΠΈΠΊΠ» ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ >>> for v in h4.values(): ... print v ... 2 3 1 #ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ Ρ Π΅ΡΠ° >>> h2.update(h4) #ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°Ρ Π² Ρ Π΅ΡΠ΅ >>> len(h2) 6
Π’ΠΈΠΏ file
ΠΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π½Π° Π΄ΠΈΡΠΊΠ΅, Π½ΠΎ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΊ. Π€Π°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: read(), write(), readline(), readlines(), seek(), tell(), close() ΠΈ Ρ.ΠΏ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°:
f1 = open("file1.txt", "r") f2 = open("file2.txt", "w") for line in f1.readlines(): f2.write(line) f2.close() f1.close()
(ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ°ΡΡΠΎΠΉ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΠ΅ΠΌΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°)
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ», ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. Π’Π°ΠΊ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΠ½ΡΠ΅ΡΠ½Π΅, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π² Π½Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄.
import urllib f1 = urllib.urlopen("http://python.onego.ru")
ΠΠ°Π΄Π°ΡΠΈ:
β Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Β«ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΉ Π·Π°ΠΊΠ°ΡΠΊΠΈΒ» URL-ΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° urls.txt
β Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ URL ΡΠΎ Π²ΡΠ΅ΠΌ Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ.
β ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ² Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»ΠΈΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π²ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
habr.com