Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
🎙 INVEST REPORT Injex Finance - The 1inch of Injective 🔥🥷
⚖️ INVEST REPORT project rating 9/10 ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
It is the final day of Round 1 in $INJX Presale, and this is your moment to act before the price jumps.
Join Presale: https://sale.injex.fi/
Don’t let this chance slip through your fingers! Secure your $INJX tokens now at the most favorable price. Join the future of decentralized finance on the Injective chain.
Act now, join the presale.
https://sale.injex.fi/
#INJ#Presale
#PoshCoin#Presale
Public Presale Started NOW!
ℹ️ Info About PoshCoin: PoshCoin is a new crypto token that will revolutionize the digital economy – mainly selling and purchasing goods in the cannabis sector.
PreSale Link:https://www.pinksale.finance/launchpad/0xD90267576273A0d640850De1beFdF366744C13DB?chain=BSC
⚜️ Token Information
🔶Token Name: Poshcoin
🔶 Symbol: PSCN
🔶Type: BEP-20
🔶 Minimum Buy: 0.0035BNB
🔶 Maximum Buy: 35BNB
🌐 Useful links :
Telegram Channel Platform: https://t.me/PoshCoinPSCN
Telegram platform group: https://t.me/poshcoin_pscn
JOIN PRESALE NOW!
Disclaimer: Please do your own research before joining to any project.
#MetaCubez#Presale
A Metaverse Full of Possibilities
✔️ Licenced From Singapore and UAE
✔️ Audited Smart Contract
✔️ KYC Team
✔️ 30% Burnt
✔️ 60% Locked
✔️ Professional team from all around the world
MetaCubez Pre-Sale is Live Now!🔥🔥
https://linktr.ee/MetaCubez
Check out there Social Links
Channel | Community | Website | Instagram | Discord | Twitter
🚨🚀 Exciting news for all crypto enthusiasts! 🌟🤑
🚨🚀 25% of DLX tokens will be available for pre-sale on Pinksale Finance from April 25-30, 2023. This is a rare opportunity to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
Hey all you crypto enthusiasts! We've got some awesome news to share - the pre-sale for DLX tokens on Pinksale Finance is starting soon! From April 25-30, 2023, 25% of the total DLX token supply will be available for purchase. Don't miss out on this chance to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
🔥👇 Web site Dollex Network
https://dollox.network/
‼️Note: We are airdrop hunters and only participate in free airdrops, please do not send any fee for receiving airdrop tokens.
🚨🚀 Exciting news for all crypto enthusiasts! 🌟🤑
🚨🚀 25% of DLX tokens will be available for pre-sale on Pinksale Finance from April 25-30, 2023. This is a rare opportunity to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
Hey all you crypto enthusiasts! We've got some awesome news to share - the pre-sale for DLX tokens on Pinksale Finance is starting soon! From April 25-30, 2023, 25% of the total DLX token supply will be available for purchase. Don't miss out on this chance to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
🔥👇 Web site Dollex Network
https://dollox.network/
‼️Note: We are airdrop hunters and only participate in free airdrops, please do not send any fee for receiving airdrop tokens.
💎 MetaGram Presale — Early Investors’ Edge!
Be among the first to secure $MGR before listing at $0.0519.
⚡️ Buy & Earn instantly with our new swap-style UI:
0.001 BNB → 50 $MGR (free airdrop)
0.01 BNB → 500 $MGR
🤝 Referrals: +50% $MGR & +50% BNB back
🔥 Early entry = maximum upside. Don’t wait until the price goes public.
👉metagram.digital
#MetaGram#Presale#BNB#Crypto
💎 MetaGram Presale — Early Investors’ Edge!
Be among the first to secure $MGR before listing at $0.0519.
⚡️ Buy & Earn instantly with our new swap-style UI:
0.001 BNB → 50 $MGR (free airdrop)
0.01 BNB → 500 $MGR
🤝 Referrals: +50% $MGR & +50% BNB back
🔥 Early entry = maximum upside. Don’t wait until the price goes public.
👉metagram.digital
#MetaGram#Presale#BNB#Crypto