Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
EIA AEO-2025: сработает ли энергетический поворот Дональда Трампа?
15 апреля Управление энергетической информации Минэнерго США опубликовало ежегодный прогноз развития энергетики США до 2050 г. (AEO-2025). Этот прогноз стал первой попыткой серьезного анализа того, как предложения Администрации Дональда Трампа по ослаблению энергетического регулирования скажутся на энергетике США – в средне- и долгосрочной перспективе. Подготовка столь объемного документа обычно занимает много времени и, скорее всего, правки для разработки сценария, учитывающего новые регуляции, вносились «в последний момент».
Ослабление требований к выбросам СО2 для угольных электростанций, предложенное Администрацией Дональда Трампа, не приведет к ренессансу отрасли, но позволит сохранить её на энергетической карте Америки: в соответствии с базовым сценарием мощность угольных ТЭС в 2025-31 гг. снизится более чем в 2,5 раза, до 63 ГВт, а в 2032 г. отрасль фактически прекратит свое существование – мощности угольной генерации упадут до 3,4 ГВт, это меньше установленной мощности российской Рефтинской ГРЭС (3,8 ГВт, самая большая российская угольная электростанция). В «альтернативном сценарии», не учитывающим ужесточение углеродного регулирования, мощности угольных ТЭС в 2032 г. составят 78 ГВт (двухкратное снижение к уровню 2024 г.), а в следующие два десятилетия мощности будут медленно сокращаться и к 2050 г. останутся на уровне 59 ГВт.
За первые 4 месяца работы новая Администрация уже смогла сохранить целую отрасль экономики. Возможно, что в следующем AEO-2025 мы увидим совсем другой, намного более оптимистичный прогноз, а альтернативный сценарий окажется «основным»? В этом случае и российская Энергостратегия-2050, которую сейчас яростно критикуют адепты «зеленой повестки» может показаться образцом практичности и консервативности.
#EIA#Прогнозы#Угледобыча
Оценки спроса на нефть в 2К2024: динамика совпадает, оценки все больше расходятся
Разные исследовательские агентства по-разному оценивают мировой спрос на нефть и жидкие углеводороды. Различия могут достигать 1-2 мбд (50-100 млн т в пересчете на год) и связаны не только с отличающимися подходами к оценке добычи традиционных нефти и газового конденсата, но и учете иных источников, включая, например, т.н. refinery processing gains - объемы поступившей на переработку нефти могут оказаться меньше объема полученных нефтепродуктов, имеющих меньший чем нефть удельный вес (ведь измерение происходит в баррелях, для массы действует закон сохранения).
Но отличаются не только абсолютные оценки, но и приросты. В 1К2024 оценки увеличения спроса варьировались от 0.8 мбд до 2.2 мбд. Наибольший оптимизм сохраняла OPEC, тогда как инвестбанки и агентства из стран-потребителей были более консервативны. Конечно, оценки спроса подвижны (часто до финального результата данные пересматриваются 3-5 раз, причем может меняться даже знак изменения), но для рынка важны именно первые, оперативные данные.
#СпросНаНефть#OPEC#EIA#IEA
📊Коммерческие запасы нефти в США резко сократились 💧
Согласно последним данным Американского института нефти (API):
✅Коммерческие запасы нефти за неделю, закончившуюся 30 января, снизились на 11,1 млн баррелей (после сокращения на 247 тыс. баррелей неделей ранее).
✅Запасы бензина увеличились на 4,7 млн баррелей.
✅Запасы дистиллятов снизились на 4,8 млн баррелей.
✅Запасы в Кушинге (важнейший хаб США) сократились на 1,4 млн баррелей.
📌 Управление энергетической информации (EIA) опубликует официальный отчет в среду. Аналитики, опрошенные The Wall Street Journal, прогнозируют:
⭐Незначительное изменение запасов сырой нефти.
⭐Увеличение запасов бензина на 1,3 млн баррелей.
⭐Сокращение запасов дистиллятов на 2,4 млн баррелей.
💵 Нефтяные фьючерсы West Texas Intermediate (WTI) за март недавно торговались по цене $63,77 за баррель, незначительно подорожав после уровня $63,21 накануне.
🤑Следите за нашими обновлениями, чтобы оставаться в курсе последних изменений в экономике и политике!
#нефти#запасынефти#нефтьwti#api#eia#oilprices#oilreserves