Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
Если вы любите средневековую музыку или каверы на известные хиты, сделанные с использованием народных и исторических инструментов, вам сюда (на канале натурально несколько часов подобного):
https://m.youtube.com/watch?v=7Kq00R4JbR4
#justsound
Пока летел, слушал свои надежные, на любые времена плейлисты, сохранённые на телефоне. Отдельно зацепил этот трек. Он какой-то целительный:
https://m.youtube.com/watch?v=lAHCBnCRGfU
#justsound
В 22 году выходит новый альбом Placebo, которые не моя любимая группа, но несколькими выстрелами навылет прошили мое сердце.
Время новому:
https://m.youtube.com/watch?v=N17TEw__Iog
#justsound
Один из любимейших стилей музыки для самолёта, длинный перелёт, день-ночь, спишь в наушниках, а там сталкиваются небеса с твердью — epic pop (чтоб драма и преодоление, и ангелы), кинематографичный, на разрыв аорты:
https://youtu.be/SROppS6dUck
#justsound
В финале «Бойцовского клуба» звучит знаменитый трек Where is my mind — и под него происходит то, что должно случиться.
В «Злом» (Malignant) Джеймс Ван использует кавер этого знаменитого трека. И это дико. Стебно. Круто. Внешне неадекватно и, в то же время, странно уместно.
Люблю такое (трек долго разгоняется, фильм тоже, подождите):
https://www.youtube.com/watch?v=nQ_hw20Qg7g
#justsound
Небыстро. Глубоко. С чувством.
Когда мне нужно замереть — like a rabbit in your headlights — я иду за такой музыкой. Расстраивает, что у сильной музыки часто нет достойного видеоряда. Добрые роботы, где же вы?
https://m.youtube.com/watch?v=qzNVLouWwmk
#justsound
Очень часто на музыку, которая мне нравится, нет интересного видео.
Я убежден, клипы — отдельный жанр искусства. Песня с видео становится чем-то большим (как Цири с Геральтом, вернее, с его помощью). Эта песня достойна видеоряда, хотя я совершенно не понимаю, какого. Если знаете, что она должна показывать, напишите в комментах, интересно.
https://m.youtube.com/watch?v=raDoPwbG4Y8
#justsound
Никак не могу понять своего отношения к этому треку.
Начинается как weird western, прелюдия к «Золотой пуле», нервное предощущение, но когда вступает вокал и появляется текст, все переворачивается, и к финалу история становится другой:
https://youtu.be/HgAJn8gVGgQ
#justsound
Очень кайфую, что у нас появилась крутая (калькированная, но на русском) поп-музыка. Хорошего клипа нет, а неподходящий не хочу:
https://m.youtube.com/watch?v=Eiy7hR4o6SQ
#justsound
Удивительно немного известно про cyber metal группу Blind passengers, а клипа на мой любимый трек и вовсе нет. Поиграл бы в живой киберпанк под такое:
https://m.youtube.com/watch?v=6fXNhsiWLBA
#justsound
Раньше по ночам я катал под такую музыку на ролах.
Сейчас, наверное, был бы самокат, но холодно, а свадьба на выходных немного пошатнула здоровье.
Этот звук, вайб, басовые вибрации очень про мои ездовые ночи.
Я катался и придумывал второй том «Призраков».
Осень 2012 года.
https://m.youtube.com/watch?v=5nARkgVV8q0
#vishot#justsound