Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
😎
😎
😎
😎
😎
😎
😎
#aksiya
Qaynoq aksiya — naqd 9 xil mavsumiy mahsulotlarga🔥
Eng kerakli va ayni mavsumga mos mahsulotlar — endi yanada qulay narxlarda!
📅 8-9-10-aprel kunlari “Mittivoy”ning barcha filiallarda boʻlib oʻtadi
Faqat 3kun! Imkoniyatni qoʻldan boy bermang 🔥
📌Kitoblarga -50% chegirma kerakmi?
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
#aksiya
✅Navbatdagi targ‘ibot aksiyasi Qoraqalpog‘iston Respublikasida o'tkazildi
Nukus shahridagi savdo majmualaridan birida bo‘lib o‘tgan “Mening solig‘im – yurtim iqboli” mavzusidagi aksiya nukusliklar xotirasida uzoq saqlanib qoladigan bo‘ldi.
Mazkur aksiya fuqarolar oʻrtasida soliq madaniyatini yuksaltirish va asosiysi, yashirin iqtisodiyotning oldini olishga qaratilganligi bilan ahamiyatlidir.
Savdo majmuasidagi gavjum muhit — har bir xarid, har bir chek, har bir so‘m kelajakka qo‘yilgan kichik, ammo ma’noli hissa ekani anglandi.
Ayrimlar uchun arzimasdek koʻringan xarid chekini talab qilishning ahamiyati, yashirin iqtisodiyot, xususan, savdo tushumlarini yashirish, soliqdan qochish va norasmiy bandlikning salbiy oqibatlari hamda xarid cheki uchun joriy qilingan keshbek, soliq imtiyozlari va yengilliklar, soliqlarning turlari va muddatlari xususidagi savollarga toʻgʻri javob bergan fuqarolarga Qoraqalpog‘iston Respublikasi soliq boshqarmasining maxsus sovgʻalari topshirildi.
Тelegram|Facebook|Youtube|Instagram|X|Threads
😎
😎
😎
😎
😎
😎
😎
#aksiya
“Mittivoy” 6 yoshda 🎊 Shu munosabat bilan oʻyinchoqlar boʻlimidan mega aksiya 🎈
📅 25-26-27-aprel kunlari “Mittivoy”ning barcha filiallarda boʻlib oʻtadi
Faqat 3 kun! Imkoniyatni qoʻldan boy bermang 🔥
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎
😎
😎
😎
😎
😎
😎
#aksiya
“Mittivoy”ning 6 yilligi munosabati bilan super aksiya 😍
Eng kerakli va ayni mavsumga mos mahsulotlar — endi yanada qulay narxlarda!
📅 25-26-27-aprel kunlari “Mittivoy”ning barcha filiallarda boʻlib oʻtadi
Faqat 3 kun! Imkoniyatni qoʻldan boy bermang 🔥
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎😎😎😎😎😎😎
#aksiya
1+1 aksiyaning 3-kuni! 🔥
Belgilangan vitrinadagi bahorgi ustki kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎😎😎😎😎😎😎
#aksiya
1+1 aksiyaning 3-kuni! 🔥
Chaqaloqlaringiz uchun belgilangan vitrinadagi bahorgi kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎😎😎😎😎😎😎
#aksiya
1+1 aksiyaning oxirgi 4-kuni! 🔥
Belgilangan vitrinadagi bahorgi kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎
😎
😎
😎
😎
😎
😎
#aksiya
1+1 aksiyaning oxirgi 4-kuni! 🔥
Belgilangan vitrinadagi bahorgi oyoq kiyimlar bilan tanishamiz ✅
Shoshiling! Bunday imkoniyatni qoʻldan boy bermang ‼️
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
😎
😎
😎
😎
😎
😎
😎
#aksiya
Bitta oling, ikkinchisi bepul! 🔥
Belgilangan vitrinadagi bahorgi kiyim va oyoq kiyimlar uchun 1+1 aksiya ✅
Shoshiling, aksiyaning oxirgi 4-kunidan xarid qilishga ulguring 🔥
📌1+1 aksiya bahorgi kiyimlarga
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish