PYPROGLIB Telegram 6849
📌 How to: продвинутые срезы в Python

Срезы — одна из самых мощных фич Python. Помимо базового [start:stop:step], они открывают массу возможностей при работе с данными.

Вот несколько продвинутых приёмов, которые вы точно захотите использовать:

1️⃣ Циклический сдвиг списка
def rotate(lst, k):
k %= len(lst)
return lst[-k:] + lst[:-k]

rotate([1, 2, 3, 4, 5], 2) # → [4, 5, 1, 2, 3]


2️⃣ Извлечение элементов по шаблону
days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
days[::3] # → ['Mon', 'Thu']
days[5:] # → ['Sat', 'Sun']


3️⃣ Чётные и нечётные индексы
nums = list(range(10))
nums[::2] # чётные индексы → [0, 2, 4, 6, 8]
nums[1::2] # нечётные индексы → [1, 3, 5, 7, 9]


4️⃣ Массовое обновление по срезу
nums = [0]*10
nums[::2] = range(5) # → [0, 0, 1, 0, 2, 0, 3, 0, 4, 0]


5️⃣ Парсинг строки фиксированными блоками
data = "abcdefghij"
[data[i:i+2] for i in range(0, len(data), 2)]
# → ['ab', 'cd', 'ef', 'gh', 'ij']


6️⃣ Срезы в многомерных структурах
matrix = [[1,2,3], [4,5,6], [7,8,9]]
[row[1] for row in matrix] # → [2, 5, 8]
[matrix[i][i] for i in range(3)] # → [1, 5, 9]


7️⃣ Использование `slice()` вручную
s = slice(2, 8, 2)
lst = list(range(10))
lst[s] # → [2, 4, 6]


8️⃣ NumPy: срезы в многомерных массивах
import numpy as np
arr = np.arange(100).reshape(10, 10)
arr[-3:, -3:] # Подматрица 3×3 в правом нижнем углу


9️⃣ Pandas: срезы по строкам и условиям
import pandas as pd
df = pd.DataFrame({'A': [1,2,3,4], 'B': [10,20,30,40]})

df.iloc[:2] # первые 2 строки
df.loc[df['A'] > 2] # строки, где A > 2


🔟 Срезы в байтовых объектах
b = b'Hello, world!'
b[:5] # → b'Hello'

ba = bytearray([10, 20, 30, 40])
list(ba[1:3]) # → [20, 30]


⚡️ Срезы = читаемый, быстрый и питоничный способ работы с данными. Чем чаще используете — тем меньше кода и ошибок.

📎 Сохраните и поделитесь, если было полезно! Делитесь в комментариях, какими ещё приёмами пользуетесь.

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍12❤‍🔥3



tgoop.com/pyproglib/6849
Create:
Last Update:

📌 How to: продвинутые срезы в Python

Срезы — одна из самых мощных фич Python. Помимо базового [start:stop:step], они открывают массу возможностей при работе с данными.

Вот несколько продвинутых приёмов, которые вы точно захотите использовать:

1️⃣ Циклический сдвиг списка

def rotate(lst, k):
k %= len(lst)
return lst[-k:] + lst[:-k]

rotate([1, 2, 3, 4, 5], 2) # → [4, 5, 1, 2, 3]


2️⃣ Извлечение элементов по шаблону
days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
days[::3] # → ['Mon', 'Thu']
days[5:] # → ['Sat', 'Sun']


3️⃣ Чётные и нечётные индексы
nums = list(range(10))
nums[::2] # чётные индексы → [0, 2, 4, 6, 8]
nums[1::2] # нечётные индексы → [1, 3, 5, 7, 9]


4️⃣ Массовое обновление по срезу
nums = [0]*10
nums[::2] = range(5) # → [0, 0, 1, 0, 2, 0, 3, 0, 4, 0]


5️⃣ Парсинг строки фиксированными блоками
data = "abcdefghij"
[data[i:i+2] for i in range(0, len(data), 2)]
# → ['ab', 'cd', 'ef', 'gh', 'ij']


6️⃣ Срезы в многомерных структурах
matrix = [[1,2,3], [4,5,6], [7,8,9]]
[row[1] for row in matrix] # → [2, 5, 8]
[matrix[i][i] for i in range(3)] # → [1, 5, 9]


7️⃣ Использование `slice()` вручную
s = slice(2, 8, 2)
lst = list(range(10))
lst[s] # → [2, 4, 6]


8️⃣ NumPy: срезы в многомерных массивах
import numpy as np
arr = np.arange(100).reshape(10, 10)
arr[-3:, -3:] # Подматрица 3×3 в правом нижнем углу


9️⃣ Pandas: срезы по строкам и условиям
import pandas as pd
df = pd.DataFrame({'A': [1,2,3,4], 'B': [10,20,30,40]})

df.iloc[:2] # первые 2 строки
df.loc[df['A'] > 2] # строки, где A > 2


🔟 Срезы в байтовых объектах
b = b'Hello, world!'
b[:5] # → b'Hello'

ba = bytearray([10, 20, 30, 40])
list(ba[1:3]) # → [20, 30]


⚡️ Срезы = читаемый, быстрый и питоничный способ работы с данными. Чем чаще используете — тем меньше кода и ошибок.

📎 Сохраните и поделитесь, если было полезно! Делитесь в комментариях, какими ещё приёмами пользуетесь.

Библиотека питониста #буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tgoop.com/pyproglib/6849

View MORE
Open in Telegram


Telegram News

Date: |

Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members. 5Telegram Channel avatar size/dimensions Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image. As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. How to create a business channel on Telegram? (Tutorial)
from us


Telegram Библиотека питониста | Python, Django, Flask
FROM American