🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° 🐍
2.5K subscribers
1.05K photos
23 videos
285 links
🐍 Канал ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС Python. ВСматичСскиС ΡƒΡ€ΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ.

πŸ‘½ Админ - @it_dashka
πŸ”Š ΠšΡƒΠΏΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ: https://telega.in/c/byteofpython

πŸ‘‰ Π§Π°Ρ‚: @abyteofpython
πŸ‘‰ ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ: @byteofpython
Download Telegram
πŸ”Ή БписочныС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (List Comprehensions) Π² Python

БписочныС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ списки Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ….
Π˜Ρ… ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, трансформации ΠΈ создания Π½ΠΎΠ²Ρ‹Ρ… списков.

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares) # Π’Ρ‹Π²ΠΎΠ΄: [1, 4, 9, 16, 25]


Быстро ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ: ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· исходного списка.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ списочныС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для краткости ΠΈ читаСмости ΠΊΠΎΠ΄Π°.
πŸ”Ή ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π² Python β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° (set) β€” нСупорядочСнныС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, содСрТащиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты.
Они быстро Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ объСдинСния, пСрСсСчСния ΠΈ разности.

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # Π’Ρ‹Π²ΠΎΠ΄: {1, 2, 3, 4, 5}


ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° автоматичСски ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΈ подходят для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями.
❓ Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция map() Π² Python ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ?

Ѐункция map() примСняСтся для прСобразования ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ позволяСт Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ ΠΈ эффСктивно ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

βœ… ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # [1, 4, 9, 16]


πŸ“Œ Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция map() примСняСт лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠΎ всСм элСмСнтам списка, возвращая Π½ΠΎΠ²Ρ‹ΠΉ список с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°ΠΌΠΈ чисСл.

map() ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.
πŸ”Ή ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² Python β€” нСизмСняСмыС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple) β€” это упорядочСнныС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послС создания.

Они Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСньшС памяти, Ρ‡Π΅ΠΌ списки, ΠΈ подходят для хранСния постоянных Π΄Π°Π½Π½Ρ‹Ρ….

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

coordinates = (10, 20)
print(coordinates[0]) # Π’Ρ‹Π²ΠΎΠ΄: 10


ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, настройки ΠΈΠ»ΠΈ константы.

⚠️ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ случайного измСнСния.
πŸ”Ή Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Python β€” ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ

Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (списков, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ, строк) ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ.
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ считаСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ссли Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ iter() ΠΈ next().

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

my_list = [1, 2, 3]
it = iter(my_list)

print(next(it)) # Π’Ρ‹Π²ΠΎΠ΄: 1
print(next(it)) # Π’Ρ‹Π²ΠΎΠ΄: 2


Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ экономят ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ всС элСмСнты сразу.

βœ”οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ.
πŸ”Ή АргумСнты *args ΠΈ kwargs Π² Python

*args ΠΈ **kwargs ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

β€’ *args β€” ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°)
β€’ **kwargs β€” ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (Π² Π²ΠΈΠ΄Π΅ словаря)

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def show_info(*args, **kwargs):
print("ARGS:", args)
print("KWARGS:", kwargs)

show_info(1, 2, name="Alice", age=30)

ARGS: (1, 2)
KWARGS: {'name': 'Alice', 'age': 30}


ПолСзно для Π³ΠΈΠ±ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
πŸ₯΄1
πŸ”Ή Π¦ΠΈΠΊΠ» for Π² Python β€” ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

Π¦ΠΈΠΊΠ» for ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов Π² списках, строках, мноТСствах ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ….

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

fruits = ["яблоко", "банан", "вишня"]

for fruit in fruits:
print(fruit)

яблоко
Π±Π°Π½Π°Π½
вишня


ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ всСм элСмСнтам Π±Π΅Π· индСксов.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.
πŸ₯΄1
πŸ”Ή Ѐункция zip() Π² Python β€” объСдинСниС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ

zip() ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ нСсколько ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ содСрТит элСмСнты с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ индСксами.

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

names = ["Анна", "Борис", "Π’Π΅Ρ€Π°"]
ages = [25, 30, 22]

for name, age in zip(names, ages):
print(f"{name} β€” {age} Π»Π΅Ρ‚")

Анна β€” 25 Π»Π΅Ρ‚
Борис β€” 30 Π»Π΅Ρ‚
Π’Π΅Ρ€Π° β€” 22 Π»Π΅Ρ‚


zip() ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ построчно ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… списков.
πŸ‘1