Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
Mensaje del ayatolá Jameneí al pueblo de #Líbano:
🟥 «Estamos con ustedes, su dolor es el nuestro»
⭕️ El ayatolá Jameneí, Líder de la Revolución Islámica, ha dirigido a la nación libanesa un mensaje en el que expresa su solidaridad con el resistente pueblo del país, afectado por la guerra.
🔗👉LEER LA NOTICIA COMPLETA
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook | TikTok
🟥Encuentro del embajador lisiado de guerra de Irán en el #Líbano con el ayatolá Jameneí
⭕️El Sr. Amaní, herido en un ojo y en las manos en el atentado terrorista del régimen sionista conocido como «operación de los bíperes», informó al Líder de la Revolución Islámica sobre los últimos cambios en su estado de salud...
🔗👉LEER LA NOTICIA COMPLETA
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook | TikTok
🇱🇧/🇮🇱⚔️ Fuerzas del ejército israelí, con apoyo aéreo y tanques Merkava, han lanzado un nuevo ataque contra la ciudad de Ainatha, en el sur del Líbano.
➡️ La caída de Ainatha abre el camino para que Israel entre en la ciudad de Bint Jbeil, la zona residencial más grande y poblada de las regiones fronterizas del sur del Líbano.
#Líbano#Israel
@iswnews_es
#Líbano#Israel
◀️ Imágenes de la operación de los combatientes de la unidad de misiles de Hezbolá contra las bases de Raghavim y Ein Shemir en el centro de la Palestina ocupada.
Veteranos del atentado terrorista Pager se enfrentan a Israel con cohetes Nasr en esta operación.
@iswnews_es
#Líbano#Israel
◀️ Misiles🚀 antitanque de Hezbolá🇱🇧 impactaron tres tanques Merkava israelíes🇮🇱 en la entrada de la ciudad de Dabl, en el sur del Líbano.
✍️ En este enfrentamiento, ocurrido el 25 de marzo, tres tanques Merkava intentaron entrar en Dabl, pero fueron alcanzados por combatientes de la unidad antitanque de Hezbolá, lo que obligó a sus tripulaciones a huir.
@iswnews_es
🇱🇧/🇮🇱⚔️ Fuerzas del ejército israelí, con apoyo aéreo y tanques Merkava, han lanzado un nuevo ataque contra la ciudad de Ainatha, en el sur del Líbano.
➡️ La caída de Ainatha abre el camino para que Israel entre en la ciudad de Bint Jbeil, la zona residencial más grande y poblada de las regiones fronterizas del sur del Líbano.
#Líbano#Israel
@iswnews_es
🟥EEUUha comprendido que no se puede hacer las cosas con métodos duros
🔻¡Vean a cuánta gente han matado en #Gaza!, pero no consiguieron acabar con el movimiento.
🔻En #Líbano, causaron el martirio de alguien de la talla de Seyed Hasan Nasralá y eliminaron a muchas personas —son eso, las acciones de tipo duro—, pero no pudieron acabar con Hezbolá.
🔻De ahí que tengan que operar con métodos blandos. Esos métodos blandos consisten en difundir mentiras, en crear distancia entre la realidad y lo que piensa o imagina la opinión pública.
🔻Usted se está fortaleciendo y ellos propagan que se está debilitando. Ellos mismos se están debilitando, pero difunden que se están fortaleciendo...» (08/01/2025).
🔗 LEER 👉spanish.khamenei.ir/news/6405
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook| TikTok
Ayatolá Jameneí:
🔰La Tormenta de Al-Aqsa es inextinguible y el régimen sionista desaparecerá.
#Gaza#Líbano
🖇spanish.khamenei.ir
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook| TikTok
⭕️ «No vayan a pensar esos idiotas que, porque bombardean hospitales o porque bombardean agrupamientos de gente, han vencido. No. Nadie en el mundo considera eso una victoria...» (25/11/2024). #Gaza#Líbano
🔗LEER👉spanish.khamenei.ir/news/6279
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook| TikTok
⭕️ «Bombardear las casas de la gente no es vencer» (25/11/2024). #Gaza#Líbano
🖇spanish.khamenei.ir/news/6275
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook| TikTok
⭕️«EEUU tiene las manos manchadas de sangre. Con los crímenes que se han perpetrado en #Gaza y en #Líbano, EEUU es obviamente cómplice, como todos saben ya hoy. Antes se decía a modo de análisis, pero ahora ya lo ven todos...» (07/11/2024).
🔗LEER👉spanish.khamenei.ir/news/6258
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook | TikTok
🟥Las aleyas de la Fátiha y la súplica de Tawássul, rezos recomendados por el ayatolá Jameneí para la victoria del Frente de la Resistencia en #Líbano y #Palestina...
🔗👉LEER LA NOTICIA COMPLETA
Sigan el canal en Telegram del Ayatolá Jameneí 👉@khamenei_es
KHAMENEI.IR | 𝕏 | Facebook| TikTok