Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
#Musical chair
Activity for review vocabulary
Class 7️⃣"Active"
Students learned vocabulary Time⏰
On each chair stuck the words from the topic time
When music🎶 plays students walking around the chairs and dance 🕺💃
When music pauses they should sit and say the word with its meaning
The challenge is that students' numbers are more than chairs. And also if students can not say the meaning they can not participate in the activity anymore
Aim of the activity
Review vocabulary
Enhance vocabulary ⬆️
Motivate students to learn foreign language
Relaxation 😂
Work on concentration🤔
Energizer😉
Learning should be
Easy and Enjoyable 😎👍
Teacher Umida Pulatova
Kushtepa district Specialized School
Fergana Region
https://t.me/LanguageStuff
🎬 Whiplash: Em Busca da Perfeição (2014)
Gênero: #Drama, #Musical
⭐️ IMDb: 8.5
⏳ Duração: 1 h 46 min
📝 Sinopse:
Um jovem e promissor baterista se matricula em um conservatório de música onde seus sonhos são guiados por um instrutor que não pára por nada para perceber o potencial de um aluno.
Fonte: IMDb
🔵Inscreva-se em @Assistir
*Patrocinado: Anime Bot
📺- CHICA VAMPIRO -📺
Título original: Chica Vampiro
Género:#Fantasía#Musical
Temporadas: 1
Año: 2013 📼
Origen: Colombia 🇨🇴
Tráiler:youtu.be/tlNRg_fYFU4
Sinopsis:
Daisy O'Brian es una chica normal que sueña con una carrera como cantante en comedia musical. Sus padres son vampiros y, según la tradición familiar, debe decidir convertirse en vampiro o no en su cumpleaños número 16. Ese día, Daisy decide seguir siendo humana para vivir junto a su amor, Max, que es su vecino y compañero de clase.
Disponible:Netflix | Vix | HBO Max
@SeriesClubHD
🍿 Lady Gaga and Joaquin Phoenix unleash chaos in 'Joker: Folie à Deux'
📆Premiere: October 4, 2024
🎭Genre: #Drama · #Musical
🎬 The first trailer for 'Joker: Folie à Deux' is here! Joaquin Phoenix returns as Arthur Fleck, joined by Lady Gaga as Harley Quinn. This dynamic duo promises chaos and music in a sequel that takes place mostly in Arkham Asylum. 🌆🃏
The first film was a massive hit, winning the Golden Lion and multiple Oscars, including Best Actor for Phoenix. This time, in addition to the usual madness, we'll see unique musical elements that will surprise everyone. Don't miss it! 🎤💥