Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
⚫️ У правящей партии мысль об европейской интеграции переводится просто: униря. Ткачук рассказал о "проевпропейскости" PAS и Ивана Чебана.
◻️ О PAS:
"Я не верю в проевропейскость правящей партии, потому что это чистая геополитика. ... У нас же теперь всё про геополитику. При этом мы существуем в условиях чрезвычайного положения, в условиях внесудебных санкций и решений, причём секретных, в условиях цензуры. Мы существуем в условиях, когда над Конституцией издеваются, как хотят. Мы существуем в условиях, когда спецслужбам предоставляются права Третьего жандармского управления времён Николая II..."
◻️ О Чебане:
"Его европейская интеграция видна. При всём том, что Чебану иногда хочется бежать впереди паровоза и биться головой об пол, и кричать: "Я свой, я буржуинский!" При этом мы видим определённые проекты, форумы, мероприятия..."
#гражданскийконгресс#congresulcivic
✅Перед выборами Санду обещала лично договариваться о газе.
👉Из предвыборной программы кандидата в президенты Майи Санду:
"Проведу переговоры с Россией с целью разрешения проблем, связанных с поставкой природного газа по конкурентоспособным ценам».
✅Провела? Нет, Санду заявила, что это не её дело, а договариваться должны хозяйствующие субъекты.
🟥Результат известен: за её нарушенное предвыборное обещание и за её геополитические комплексы платим все мы, причём, ежемесячно.
#гражданскийконгресс#congresulcivic
❗️Михаил Полянский, член Исполкома Гражданского конгресса, отмечает, что в Молдове ввели ЧП не из-за долгов, а из-за некомпетентности высшего руководства страны: «Потому что тема аванса, частичной предоплаты за потреблённый газ – это не нововведение».
«Власти просто забыли про условия договора. И если у экономического агента нет денег, то правительство должно вмешаться. Иначе пострадают граждане страны. И тут следует понимать, что государство может сделать всё что угодно (соблюдая законную процедуру): и дать денег экономическому агенту, и одолжить... Только решать вопрос надо вовремя, а не когда сотрудники «Газпрома» уже подошли к вентилю газовой трубы», - пишет Полянский.
▫️Он подчеркнул, что за жизнь и здоровье граждан отвечает не хозяйствующий субъект, а государство.
"Если страна погружается в хаос, то спрашивать, по-моему, нужно именно с властей. Особенно в ситуации, когда по их вине, из-за отсутствия логики в действиях, происходит этот цирк», - подчеркнул он.
#гражданскийконгресс#congresulcivic
💬«Важно понимать, что не существует просто приднестровской проблемы между Кишиневом и Тирасполем, есть вопрос сохранения молдавской государственности и ее независимости.
Для кого это не пустые слова — приднестровский вопрос является принципиальным. Для тех, кому независимость не нужна, Приднестровье — чемодан без ручки, от которого надо избавиться и провести границу по Днестру», - отметил Марк Ткачук, комментируя для Коммерсанта, назначение Олега Серебряна на должность вице-премьера по реинтеграции.
#гражданскийконгресс#congresulcivic
⚡️ «Совершенно не ясно, как долго будет тепло в домах и не окажемся ли мы в условиях двойного чрезвычайного положения. И по газу, и по пандемии.
Так что десяткам тысяч наших граждан, судя по всему, лечить пневмонии придётся в холодных домах и в неотапливаемых больницах. Это фиаско»,
- Михаил Полянский, представителель Исполкома Гражданского конгресса.
#гражданскийконгресс#congresulcivic
◽️ Политическая партия «Гражданский конгресс», которая пытается исповедовать подход нового типа (коллективное действие) после полугодового перерыва оправилась от поражения на выборах и собрала не только представительное мероприятие, но и мириады откликов на него в прессе, передает eNews.
#congresulcivic#гражданскийконгресс
❗️Igor Boțan a participat, la finele anului trecut, la ședința deschisă a plenului Partidului Acțiunii Comune „Congresul Civic”.
Comentând alocuțiunea lui Mark Tkaciuk, el a declarat că „Congresul”, potrivit observațiilor sale, pledează pentru trei importante transformări ale societății moldovenești. Prima dintre ele: cetățenii trebuie să înceapă a administra viața politică, relateaza Tribuna.
#congresulcivic#гражданскийконгресс
🤟"Давайте вместе откажем каким-то людям в возможности жить за наш счёт! То есть, быть каннибалами в социальном смысле! Давайте учиться проявлять солидарность не только по политическому признаку"
#congresulcivic#гражданскийконгресс
👉Результат «Гражданского конгресса» на парламентских выборах Иван Грек объяснил тем, что «наш избиратель, давно расфасованный по геополитическим корзинам, никак не может быстро и решительно обратить свой взор на тех, кто предлагает ему взглянуть на самих себя, на свое государство, на его и свое будущее».
#гражданскийконгресс#congresulcivic
⚡️Гражданский Конгресс заявляет: больше человеческих жертвоприношений быть не должно. Мы считаем, что мы – граждане Молдовы – приносим эти жертвы не от того, что мы бедные.
А мы бедные от того, что готовы всякий раз поступиться самым дорогим, чем нас наградила природа и история – жизнью и социальной свободой.
#congresulcivic#гражданскийконгресс