Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
📺- ROMA -📺
Título original: Rome
Año: 2005 📼
Temporadas: 2
Calificación: 8,7/10 (IMDb)
Género:#Drama#Acción#Histórico
Audio: Inglés 🇺🇸 / Español 🇪🇸
Subtítulos:Español 🇪🇸
Trailer: youtu.be/WzoHtuaHshA
Sinopsis:
Cuatro siglos después de la fundación de la República (509 a.C.), Roma es la ciudad más poderosa del mundo, una metrópoli cosmopolita de un millón de personas, el epicentro de un imperio en expansión. La República se basó en la separación de poderes y creó los mecanismos necesarios para evitar que un solo hombre acumulara demasiado poder. Sin embargo, con el paso del tiempo, la corrupción, el lujo y los excesos fueron carcomiendo esos principios.
@SeriesClubHD
📺 - LOS TRABAJADORES DEL FERROCARRIL: LA HISTORIA NO CONTADA DE BHOPAL 1984 - 📺
Título original: The Railway Men
Título Alternativo: Los Trabajadores Del Ferrocarril
Género:#Drama#Suspenso#Histórico
Temporadas: 1 📼
Año: 2023
Origen: India 🇮🇳
Tráiler:youtu.be/kYLE_81t2Xo
Sinopsis:
Basada en hechos reales, la miniserie recrea el desastre químico de Bhopal en 1984, cuando una fuga de gas letal provocó miles de muertes. En medio del caos, un grupo de trabajadores del ferrocarril arriesga su vida para salvar a cientos de personas, convirtiéndose en héroes anónimos.
Disponible:Netflix
@SeriesClubHD
☢️Título: Uchi No Shishou Wa Shippo Ga Nai — ( My Master Has No Tail )
✔️Capitulos: 13
✔️Calidad: #720p
✔️Género: #Histórico#SobreNatural#Comedia#Drama
✔️Idioma: #Japonés_Sub_Español
🀄️Sinopsis:
Mameda es una niña tanuki que cambia de forma y sueña con convertirse en humana algún día. Un día, se convierte en una belleza de pelo negro y se dirige a Osaka, pero pronto es descubierta. Una hermosa mujer le dice implacablemente a la deprimida Mameda: "¡Vuelve al lugar de donde viniste!", y se hace llamar Rakugo-ka (narradora de Rakugo). ¡La fantasía de Taisho Rakugo que te hará sonreír comienza aquí!
📤Apoyame Aquí 👈
@directorioplusultra
Fate/Grand Carnival
📅Año 2020
País🇯🇵Japón
🎥Dirección#SeijiKishi
📄Guion Makoto Uezu
🎼Música Takanashi Yasuharu, Keita Haga
🎬Productora Type Moon
Género#Animación#Comedia#Fantástico#Miniserie#Videojuego#Parodia#Spinoff#Sobrenatural#Mitología#Histórico#Viajeseneltiempo
Sinopsis
Los personajes de "Fate/Grand Order" protagonizan diferentes cómicas y absurdas situaciones en el mismo estilo que el anterior "Carnival Phantasm".
⏱Duración 32min.
🖥Resolución 720x400
🗣Idioma Japonés
Subtítulos Latino
Episodio01 - 02
Suscripción a este Anime 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí
Renmei Kūgun Kōkū Mahō Ongakutai Luminous Witches
📅Año 2022
País🇯🇵Japón
🎥Dirección#ShoujiSaeki
📄Guion Shouji Saeki, Shinya Murakami.
✨Idea#HumikaneShimada
🎼Música Yoshiaki Fujisawa
🎬Productora Kadokawa
Género#SeriedeTV#Animación#Comedia#Drama#Cienciaficción#Musical#Spinoff#Música#Ejército#Histórico#Extraterrestres
Sinopsis
Las "Luminous Witches" son un escuadrón de "Strike Witches" que no se dedican a la batalla, si no a interpretar canciones para proteger las sonrisas de aquellos que han tenido que ser evacuados de sus ciudades por culpa de la invasión Neuroi. Spin-off de la serie anime "Strike Witches: Road to Berlin".
⏱Duración 24min.
🖥Resolución 720x400
🗣Idioma Japonés
Subtítulos Latino
Episodio01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12
Suscripción a este Anime 👉🏻Aquí
Índice de Animaciones 👉🏻Aquí