рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдЕрдиреБрдХреВрд▓рди: рд╕реВрдЪреА рдФрд░ рдЯрдкрд▓

рдкрд╛рдпрдерди рдореЗрдВ, рджреЛ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░ рд╣реИрдВ - рд╕реВрдЪреА (рд╕реВрдЪреА) рдФрд░ рдЯреНрдпреВрдкрд▓ (рдЯреНрдпреВрдкрд▓)ред рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЯреНрдпреВрдкрд▓реНрд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред

рдЖрдк рдЯрдкрд▓ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

>>> 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) 

рд╕реАрдкреАрдереЙрди (рдорд╛рдирдХ рджреБрднрд╛рд╖рд┐рдпрд╛) рдХреЗ рдЕрдВрджрд░, рд╕реВрдЪреА рдФрд░ рдЯреБрдкрд▓ рдХреЛ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЕрд░реНрдерд╛рдд рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд (рд▓рд┐рдВрдХ) рдХреА рдПрдХ рд╢реАрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рд╕реВрдЪреА рд╕реЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдФрд░ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред

tuples


рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЖрдо рд╣реИрдВ рдФрд░ рдЗрддрдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдореМрд▓рд┐рдХ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╛рдпрдерди рд▓рдЧрд╛рддрд╛рд░ рдЖрдВрддрд░рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЯреБрдкрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  • рддрд░реНрдХреЛрдВ рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ (рдЙрдиреНрд╣реЗрдВ рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдЪрд░ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ
  • рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ iterate рдореВрд▓реНрдп рдХреБрдВрдЬрд┐рдпрд╛рдБ
  • рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрд╡рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдЖрдорддреМрд░ рдкрд░, рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдЬрд╛рд░реЛрдВ рдЯреБрдкрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ:

 >>> 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 

рдЦрд╛рд▓реА рд╕реВрдЪреА рдмрдирд╛рдо рдЦрд╛рд▓реА рдЯреНрдпреВрдкрд▓реНрд╕


рдПрдХ рдЦрд╛рд▓реА рдирд▓рд┐рдХрд╛ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд рдЪрд▓ рд░рд╣реЗ рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдХреА рд╕реНрдореГрддрд┐ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рд▓реА рдЯрдкрд▓ рд╣реЛрддрд╛ рд╣реИред рд╕рднреА рдЦрд╛рд▓реА tuples рдмрд╕ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ tuples рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рд╕рд╛рд░реА рдореЗрдореЛрд░реА рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЦрд╛рд▓реА рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред

 >>> 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 

рдЯреБрдкрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХрд╛ рдЕрдиреБрдХреВрд▓рди


рдореЗрдореЛрд░реА рдлрд╝реНрд░реЗрдЧреНрдореЗрдВрдЯреЗрд╢рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдкреБрд░рд╛рдиреЗ рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдЯрдкрд▓ рдореЗрдВ 20 рд╕реЗ рдХрдо рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкрд╛рдпрдерди рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реВрдЪреА рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдЬреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рд╕реВрдЪреА рдХреЛ 20 рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдЖрдХрд╛рд░ n рдХреЗ tuples рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЬрд╣рд╛рдВ n 0 рд╕реЗ 20 рддрдХ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ 2,000 рд╕реЗ рдЕрдзрд┐рдХ tuples рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╕рдореВрд╣ рдХреЗрд╡рд▓ рдПрдХ рддрддреНрд╡ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдЯрдкрд▓ рдХреА рд╕реВрдЪреА рд╣реИред

 >>> 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 

рд╕реВрдЪреА рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ


рд▓рдЧрд╛рддрд╛рд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдУрд╡рд░рд╣реЗрдб рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдЗрдерди рд╣рд░ рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪреА рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдирдП рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЫрд┐рдкреА рд╣реБрдИ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ, рдкрд╛рдпрдерди рдирдП рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдФрд░ рд╡рд╣ рдЗрд╕реЗ рдПрдХ рдЕрдЪреНрдЫреЗ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ, рд╕реВрдЪреА рдХреЗ рд╡рд░реНрддрдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрд┐рдкреА рд╣реБрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдирдП рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╕реНрд▓реЙрдЯ рд╣реЛрддрд╛ рд╣реИред

рдЬрдм рдЖрдк рд▓реВрдк рдореЗрдВ рдХрдИ рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╣рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИред

рд╕реВрдЪреА рдЖрдХрд╛рд░ рд╡реГрджреНрдзрд┐ рдкреИрдЯрд░реНрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: 0, 4, 8, 16, 25, 35, 46, 58, 72, 88 ...

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк 8 рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рддрддреНрд╡ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдирд┐рдГрд╢реБрд▓реНрдХ рд╕реЗрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдкрд╛рдпрдерди рддреБрд░рдВрдд рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреЛ 16 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд╣рд╛рдВ рдЙрдирдореЗрдВ рд╕реЗ 9 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдмреНрдЬреЗ рдФрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

рдкрд╛рдпрдерди рдЖрдХрд╛рд░ рдХрд╛ рд╕реВрддреНрд░:

 >>> 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 

рдЧрддрд┐


рдЕрдЧрд░ рд╣рдо рдЧрддрд┐ рдореЗрдВ рдЗрди рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрд╕реНрдкрддрд╛рд▓ рдореЗрдВ рдФрд╕рддрди, рдЯреНрдпреВрдкрд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рддреЗрдЬ рд╣реЛрддреЗ рд╣реИрдВред рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдЧрддрд┐ рдХреЗ рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП рд░реЗрдордВрдб рд╣реЗрдЯрд┐рдВрдЧрд░ рдХреА рдПрдХ рдорд╣рд╛рди рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ: рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд▓реЗрдЦрдХ рд╣реВрдВ, рдЖрдк рдХреЛрдИ рднреА рдкреНрд░рд╢реНрди рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi417783/


All Articles