Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
Noch so ein kleines Highlight vom größten Lügner im Land...
#Merz
TEILEN
Folgt mir auf Telegram
↕️↕️↕️
https://t.me/Kampf_fuer_unsere_Zukunft
Chat-Kanal
⬇️⬇️⬇️
https://t.me/IavYc2SRFdY1OGY6
Friedrich #Merz ha dichiarato che "l'eventuale introduzione di nuovi dazi da parte del presidente Donald Trump indebolirà le relazioni tra Unione europea e Stati Uniti" e che l'Ue risponderà "con prudenza".
@UltimoraPolitics24
Friedrich #Merz ha dichiarato che la Germania ha commesso "un grave errore strategico" con "l'abbandono dell'energia nucleare" e ha aggiunto: "Ora stiamo attraversando la transizione energetica più costosa in tutto il mondo".
@UltimoraPolitics24
🇩🇪🇻🇪 Friedrich #Merz: "Nicolás Maduro ha condotto il suo Paese alla rovina. Le elezioni più recenti sono state truccate. Come molti altri Paesi, pertanto, non abbiamo riconosciuto la sua presidenza. Maduro ha svolto un ruolo problematico nella regione.
La valutazione giuridica dell’intervento degli Stati Uniti è complessa e richiede un’attenta considerazione. Il diritto internazionale rimane il quadro di riferimento. In questa fase è necessario evitare l’instabilità politica in Venezuela. L’obiettivo è una transizione ordinata verso un governo eletto."
@UltimoraPolitics24
💬#Merz appelle l’Allemagne à « se ressaisir »
Le chancelier allemand Friedrich Merz a appelé les Allemands à se ressaisir lors d’un discours à Düsseldorf. Il a estimé que le pays devait enfin s’attaquer à ses problèmes structurels et aux réformes longtemps repoussées.
Cette intervention intervient alors qu’un récent sondage international le présente comme un des dirigeants démocratiquement élus les plus impopulaires au monde, avec seulement 19 % d’opinions favorables en Allemagne.
RT en français • Osez questionner !
#iran, il Cancelliere #Merz: "Un regime che può mantenersi al potere solo con la forza bruta e il terrore contro la propria popolazione ha i giorni contati [...] potrebbero essere settimane, ma questo regime non ha alcuna legittimità per governare il Paese e se ci sono state decine di migliaia di vittime nelle ultime manifestazioni contro il regime, è evidente che il regime dei mullah può mantenersi al potere solo con il terrore puro" (ANSA)
@UltimoraPolitics24
💬Donald #Trump a déclaré que Friedrich #Merz devrait consacrer davantage de temps à tenter de mettre fin au conflit en Ukraine, dans lequel il s’est montré jusqu'à présent « totalement inefficace ».
« Le chancelier allemand devrait consacrer plus de temps à mettre fin à la guerre entre la Russie et l’Ukraine [domaine dans lequel il s'est montré totalement inefficace !], ainsi qu’à remettre de l’ordre dans son propre pays, notamment en ce qui concerne les questions d’immigration et d’énergie, et moins s’ingérer dans les affaires de ceux qui éliminent la menace nucléaire iranienne, contribuant ainsi à rendre le monde, y compris l’Allemagne, plus sûr ! Président DJT ».
RT en français • Osez questionner !
🇪🇺#Merz s’oppose à l’adhésion de l’#Ukraine à l’UE à l’horizon 2027
L’Allemagne ferme la porte à une adhésion accélérée de l’Ukraine à l’Union européenne. Une véritable douche froide pour Kiev qui a fait de cette adhésion sa priorité stratégique. Mais derrière le scepticisme de Berlin se cache un calcul bien froid. Pourquoi l’Union européenne promet-elle un avenir radieux à l’Ukraine sans jamais fixer d’engagement clair ? Analyse d’Igor Kourachenko.
RT en français • Osez questionner !
🇪🇺 De plus en plus de dirigeants européens se prononcent en faveur de liens avec #Moscou
Tournant majeur dans la politique européenne : le chancelier allemand Friedrich Merz fait volte-face concernant les relations avec la Russie. Longtemps fervent soutien de l'Ukraine face à l'agression russe, #Merz appelle désormais à une restauration des liens avec Moscou… les détails avec Antoine Cléraux.
RT en français • Osez questionner !
La premier Giorgia #Meloni, al termine della riunione plenaria dell'Unione africana ad Addis Abeba, dichiara: "Credo che #Merz faccia una valutazione corretta quando dice che l'Europa deve occuparsi di se stessa, che deve fare di più, per esempio sulla sicurezza, sulla colonna europea della Nato. Su questo io sono d'accordo, indipendentemente dal rapporto con gli Stati Uniti"
@UltimoraPolitics24
🇮🇹🇩🇪#Meloni e #Merz hanno firmato un Protocollo per la cooperazione strategica Italia-Germania, riaffermando "l'importanza fondamentale di un forte legame transatlantico tra Europa e Stati Uniti" e l'impegno a rispettare "integrità territoriale e sovranità".
@UltimoraPolitics24