Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
#PaesiBassi🇳🇱
#Parlamentari
Exit poll di Ipsos I&O.
Distribuzione dei seggi.
🟩 Democratici 66 (#D66|RE): 27
⬛️ Partito per la Libertà (#PVV|PfE): 25
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 23
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 20
🟩 Appello Cristiano-Democratico (#CDA|PPE): 19
⬛️ Risposta Corretta 2021 (#JA21|ECR): 9
🟥 Forum per la Democrazia (#FvD|ESN): 6
🟩 Movimento Civico-Contadino (#BBB|PPE): 4
🟩 Partito per gli Animali (#PvdD|LEFT): 3
🟥 Partito Socialista (#SP|Sinistra): 3
🟦#DENK|Minoranze etniche: 3
Altri: 5
Maggioranza: 76
@TuttoElezioni
#PaesiBassi🇳🇱
#Parlamentari
Risultati finali.
Distribuzione dei seggi.
🟩 Democratici 66 (#D66|RE): 26
⬛️ Partito per la Libertà (#PVV|PfE): 26
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 22
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 20
🟩 Appello Cristiano-Democratico (#CDA|PPE): 19
⬛️ Risposta Corretta 2021 (#JA21|ECR): 9
🟥 Forum per la Democrazia (#FvD|ESN): 7
🟩 Movimento Civico-Contadino (#BBB|PPE): 4
🟦#DENK|Minoranze etniche: 3
🟧 Partito Politico Riformato (#SGP|ECR): 3
🟩 Partito per gli Animali (#PvdD|LEFT): 3
Altri: 8
Maggioranza: 76
@TuttoElezioni
#PaesiBassi🇳🇱
#Parlamentari
Risultati finali.
Voti scrutinati: 100%.
Affluenza finale: 78,4% (+0,05%).
🟩 Democratici 66 (#D66|RE): 16,9%
⬛️ Partito per la Libertà (#PVV|PfE): 16,7%
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 14,2%
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 12,6%
🟩 Appello Cristiano-Democratico (#CDA|PPE): 11,8%
⬛️ Risposta Corretta 2021 (#JA21|ECR): 5,9%
🟥 Forum per la Democrazia (#FvD|ESN): 4,6%
🟩 Movimento Civico-Contadino (#BBB|PPE): 2,7%
🟦#DENK|Minoranze etniche: 2,4%
🟧 Partito Politico Riformato (#SGP|ECR): 2,3%
🟩 Partito per gli Animali (#PvdD|LEFT): 2,1%
Altri: 7,8%
@TuttoElezioni
#PaesiBassi🇳🇱
#Parlamentari
Risultati parziali.
Voti scrutinati: 98,6%.
🟩 Democratici 66 (#D66|RE): 16,7%
⬛️ Partito per la Libertà (#PVV|PfE): 16,7%
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 14,1%
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 12,5%
🟩 Appello Cristiano-Democratico (#CDA|PPE): 11,7%
⬛️ Risposta Corretta 2021 (#JA21|ECR): 5,9%
🟥 Forum per la Democrazia (#FvD|ESN): 4,5%
🟩 Movimento Civico-Contadino (#BBB|PPE): 2,6%
🟦#DENK|Minoranze etniche: 2,4%
🟧 Partito Politico Riformato (#SGP|ECR): 2,3%
🟩 Partito per gli Animali (#PvdD|LEFT): 2,0%
Altri: 8,6%
@TuttoElezioni
#Sondaggi
#PaesiBassi🇳🇱
#Parlamentari
Sondaggio di Ipsos I&O.
Data: 23-24 ottobre 2025.
Campione: 2.745 persone.
⬛️ Partito per la Libertà (#PVV|PfE): 16,7%
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 15%
🟩 Democratici 66 (#D66|RE): 14,4%
🟩 Appello Cristiano-Democratico (#CDA|PPE): 12,6%
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 10,4%
⬛️ Risposta Corretta 2021 (#JA21|ECR): 7,7%
🟥 Forum per la Democrazia (#FvD|ESN): 3,6%
🟩 Partito per gli Animali (#PvdD|LEFT): 3,0%
🟥 Partito Socialista (#SP|Sinistra): 2,8%
🟩 Movimento Civico-Contadino (#BBB|PPE): 2,7%
🟧 Partito Politico Riformato (#SGP|ECR): 2,5%
🟦#DENK|Minoranze etniche: 2,4%
🟦 Unione Cristiana (#CU|Cristiano-democratici): 2,2%
🟪 Volt Paesi Bassi (#Volt|G/EFA): 2,2%
Altri: 1,8%
@TuttoElezioni