Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
Noah:
Name: justin bieber coachella night 1 apr 11 2026 full performance
Size: 872MB
.
Link: 👉Press me and click START to get the hidden link
#Terabox#求转存
♾@gdsharing♾Google Drive限制了日分享流量:求补链
Noah:
Name: Marvel Zombies / 漫威殭屍 動畫 多語言
Size: 4.95GB
.
Link: 👉Press me and click START to get the hidden link
#Terabox#求转存
♾@gdsharing♾Telegram/电报/纸飞机的网页端:可能无法点击链接
#1 ah: Help 💬
Noah:
Name: Hollow Knight Silksong
Size: 1.684GB
.
Link: 👉Press me and click START to get the hidden link
#Terabox#求转存
♾@gdsharing♾Google Drive限制了日分享流量:求补链
TeraBox
🆕Обновление
Удобное и безопасное облачное хранилище с большим объемом выделенного места. Поддерживает автоматическое резервное копирование фотографий и видео.
⚙️Полная версия, частично разблокированы Premium функции — доступно 2 Tb места (может работать не на всех серверах), вход через электронную почту (до 6642₽).
#Файлы@pm_plus
#Terabox@pm_plus
📱Play Market +
⚡️ НАШ ЧАТ
Noah:
Name: FC2-PPV-4892416
Size: 5.03GB
【懷孕/暫停更新】兩名19歲美女網紅3P無保護性愛影片緊急發布。 *價格將陸續上漲。
Link: 👉Press me and click START to get the hidden link
#Terabox#R18#FC2#求转存
♾@gdsharing♾赞/踩:可点、改、取消,每日有次数限制
#1 ygs: Noah:
Name: FC2-PPV-4892416
Size: 5.03GB
【懷孕/暫停更新】兩名19歲美女網紅3P無保護性愛影片緊急發布。 *價格將陸續上漲。
Link: 👉 Press me and click START to get the hidden link
#Terabox#R18#FC2#求转存
♾@gdsharing♾ 赞/踩:可点、改、取消,每日有次数限制 💬
#2 shun: FC2
Noah:
Name: FC2-PPV-4849846
Size: 7.32GB
FC2史上最年輕的美女之一,以近乎處女般的純真姿態站在鏡頭前。她只與一位性伴侶有過一次性經歷,發育尚未成熟的陰道在原始的衝擊下劇烈跳動,呈現出無比真實的狀態。
Link: 👉Press me and click START to get the hidden link
#Terabox#R18#FC2#求转存
♾@gdsharing♾赞/踩:可点、改、取消,每日有次数限制
#1 zhou: FC2-PPV-4849846 💬
#-1 gewenr: 微暗之火
#2 张三: 回复
#3 js: 微暗之火
#4 德芳: l
Noah:
Name: FC2-PPV-4852711
Size: 6.38GB
清純地下偶像出道前夕。課後秘密會面視頻。美人胴體四連擊。
Link: 👉Press me and click START to get the hidden link
#Terabox#R18#FC2#求转存
♾@gdsharing♾Google Drive限制了日分享流量:求补链
#1 Rosseeo: 1 💬
#2 Rơm: 已删除
Noah:
Name: FC2-PPV-4854900
Size: 4.45GB
上次人氣爆棚的18歲性感苗條美女首次嘗試cosplay攝影! 「請射在我裡面♡」她懇求道,我們當然滿足了她的願望【無碼,內射】
Link: 👉Press me and click START to get the hidden link
#Terabox#R18#FC2#求转存
♾@gdsharing♾Google Drive限制了日分享流量:求补链
#1 随风: 1 💬