Warning: preg_grep(): Compilation failed: quantifier does not follow a repeatable item at offset 134 in /var/www/tg-me/post.php on line 75
Библиотека питониста | Python, Django, Flask | Telegram Webview: pyproglib/6849 -
Telegram Group & Telegram Channel
📌 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



tg-me.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:
tg-me.com/pyproglib/6849

View MORE
Open in Telegram


Библиотека питониста | Python Django Flask Telegram | DID YOU KNOW?

Date: |

A Telegram spokesman declined to comment on the bond issue or the amount of the debt the company has due. The spokesman said Telegram’s equipment and bandwidth costs are growing because it has consistently posted more than 40% year-to-year growth in users.

Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.

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


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