Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
from timeit import timeit
def t1():
# складываем 10 строк через + из переменной
t = 'text'
for _ in range(1000):
s = t + t + t + t + t + t + t + t + t
def t2():
# склеиваем список строк через метод join
arr = ['text'] * 10
for _ in range(1000):
s = ''.join(arr)
def t3():
# складываем через + но не из переменной а непосредственно инлайн объекты
for _ in range(1000):
s = 'text' + 'text' + 'text' + ... # всего 10 раз
Теперь каждую строку склейки запустим по 10М раз
>>> timeit(t1, number=10000)
0.21951690399964718
>>> timeit(t2, number=10000)
1.4978306379998685
>>> timeit(t3, number=10000)
0.2213820789993406
Хм, а нам говорили что через "+" это плохо и медленно ))) 😁
Тут стоит учитывать, что речь идёт о склейке множества длинных строк.
Давайте изменим условия:
def t4():
t = 'text'*100
for _ in range(1000):
s = t + t + t + t + t + t + t + t + t
def t5():
arr = ['text'*100] * 10
for _ in range(1000):
s = ''.join(arr)
def t6():
for _ in range(1000):
s = 'text'*100 + 'text'*100 + ... # всего 10 раз
>>> timeit(t4, number=10000)
12.795130728000004
>>> timeit(t5, number=10000)
2.642637542999182
>>> timeit(t6, number=10000)
0.2184546610005782
Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее!
Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё.
В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический.
В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно.
Полный листинг 🌍
#tricks
#MET
Meteora потеряла $1,5 млн при выкупе MET
Meteora сообщили в отчете за I квартал 2026 года, что 17 января команда пыталась купить собственный токен MET через OTC-сделку.
Мошенники обманули обе стороны сделки — команду Meteora и реального эскроу — через поддельные чаты и звонки. В итоге Meteora отправила 1,5 млн USDC, но не получила токены.
Средства быстро смешали и вывели через KuCoin, поэтому заморозить их не удалось. Команда заявила, что подала заявление в полицию, сохранила ончейн-доказательства и усилила безопасность кошельков.
🔍🐳 Whale transactions:
1. Vitalik continues sell #ETH, sold ~3788 #ETH over the last 3 days;
2. Machi Big Brother in full liquidated. His account dropped again to $24.9 thousand, and the total loss reached $28.95 million;
3. Someone created new Polymarket wallet and spent $5,891 to bet that Meteorawill be charged with insider trading.
He also deposited 11,500 #USDC on Hyperliquid and went 3x short for 186,435 #MET ($33,000);
4. A new wallet contributed 1.8 million #USDC on Hyperliquid and went long with 25x leverage for 13,563 #ETH ($24.87 million).
🔻La mai bine de o lună de zile de la sistarea de către gigantul rus #Gazprom a livrării gazelor în regiunea transnistreană, o soluție de lungă durată pentru criza energetică provocată așa și încă nu a fost găsită.
🔻Soluţia promovată de #Moscova şi autorităţile din regiunea separatistă cu livrarea de gaze de către o firmă din #Ungaria (de fapt din #Elveţia), dar cu plata livrărilor prin intermediul unei firme din #Dubai, cu prestări de servicii și comerț, nu este nicidecum o soluţie de durată, dar a fost acceptată în final de Guvernul Republicii Moldova.
🔻Coincidență sau nu, dar cu câteva zile înainte de anunțul Gazprom-ului de sistare a livrărilor de gaze, grupul #MET, ales să livreze gaze în regiunea secesionistă, și-a deschis o firmă la #Chișinău.
Citește ancheta: https://www.rise.md/drumul-gazului-umanitar-din-rusia-in-transnistria-via-dubai-elvetia/