Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
⚡️Toncoin: TON Nominated for Best Developer Ecosystem
#TON#developers
Toncoin has announced that TON has been nominated for the Best Ecosystem Program for Developers at the BeInCrypto 100 Awards 2025. Enthusiasts and supporters can participate in public voting to support this achievement.
Source: link
@tonlines
EVAA Celebrates TON Mainnet Anniversary
#TON#developers
EVAA marks the anniversary of The Open Network Mainnet, launched on May 26, 2021. Over four years, the TON ecosystem has flourished with the contributions of active developers and TON Core.
Source: link
@tonlines
Tonnel Network: Telegram’s Financial Growth through Strategic Partnerships
#Telegram#developers
Tonnel Network highlights how Telegram’s financial stability has been strengthened through strategic partnerships with developers. These partnerships involve app and bot development, in-app purchases, and its advertising initiatives.
Source: link
@tonlines
We're a proud sponsor of the first Flow Hackathon – a global competition from 2/21–2/26 to push the limits of #web3#onFlow.
Beyond excited to be involved in the expansion of the #ecosystem and to provide an opportunity for developers to shine! 💡✨
This is what's up:
💰 $500K in prizes
🌐 Virtual & IRL events
📚 Education phase to learn more about building #onFlow
✨ Amazing speakers and judges
👨💻 Empowering #developers to do great things
Are you ready to build awesome innovations and earn prizes for your work?
Register today! 👇
https://hackathon.flow.com