Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
🌍 The polar climate zones, found near the North and South Poles, have average summer temperatures below 10°C. Here, permanent ice and tundra dominate, with only hardy mosses and lichens surviving. ✨
#climate⚡#polar⚡#tundra⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🪐 The galaxy NGC 2685, also called the Helix Galaxy, is a striking example of a "polar ring galaxy," where a large ring of stars and gas orbits nearly perpendicular to the main disk. This rare and twisted structure probably formed when NGC 2685 captured material from another galaxy, creating a cosmic spectacle that challenges our ideas of how galaxies grow and evolve. ✨
#galaxies⚡#shapes⚡#polar⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🌍 Antarctica is home to “blue ice” areas where strong winds strip away snow and expose centuries-old glacier ice, creating shimmering fields that reflect nearly as much sunlight as fresh snow. ✨
#glaciers⚡#Antarctica⚡#polar⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 In Antarctica’s Dry Valleys, glaciers flow slowly over bare rock and create icy waterfalls called “ice falls,” frozen in mid-cascade for years in the planet’s coldest, driest desert region. ✨
#glaciers⚡#Antarctica⚡#polar⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 In Antarctica’s McMurdo Dry Valleys, some glaciers create striking red waterfalls called “Blood Falls.” The color comes from iron-rich water oxidizing as it flows out of the ice. ✨
#glaciers⚡#polar⚡#Antarctica⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Some Antarctic glaciers can move several meters in a single day, driven by gravity and melting underneath. These "ice rivers" shape the landscape faster than most people imagine. ✨
#glaciers⚡#polar⚡#Antarctica⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 In polar regions, "diamond dust" can fall from clear skies. This glittering ice fog is made of tiny ice crystals that drift in the air, sparkling in sunlight even when there’s no snowstorm. ✨
#glaciers⚡#polar⚡#arctic⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 In polar regions, some glaciers move so fast they form towering "ice cliffs" over 100 meters high at their edges. These dramatic walls can collapse suddenly into the sea during major calving events. ✨
#glaciers⚡#polar⚡#ice⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 Some polar glaciers are so thick that their bottoms lie below sea level for hundreds of meters. These vast "marine ice sheets" hold enough frozen water to alter global coastlines if they melt. ✨
#glaciers⚡#polar⚡#ice⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Some glaciers can glow blue beneath the surface. This vivid color appears when dense, compressed ice absorbs red light and scatters only the blue, creating striking icy caverns in polar regions. ✨
#glaciers⚡#polar⚡#ice⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Some polar lakes never see sunlight and stay covered with ice year-round. Microbes living under this ice survive in complete darkness, making them some of the most isolated life forms on Earth. ✨
#glaciers⚡#polar⚡#microbiology⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels