Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
🇿🇦Парк слонов Тембе🐘
Парк был создан в северо-восточной части Южной Африки в 1983 году для защиты слонов, мигрировавших между ЮАР и Мозамбиком. 🌍
С 1991 года парк открыт для посетителей — сегодня здесь обитает около 250 самых крупных в мире слонов!🏞
Если вы любите сафари, в парке сможете увидеть и других представителей «большой пятёрки»: 🦁 львов, 🐆 леопардов, 🦏 носорогов и 🐃 буйволов.
🎥 Видео в режиме реального времени:
👉https://www.youtube.com/watch?v=VUJbDTIYlM4
#ЮАР#Природа#Сафари#Африка#ПаркСлонов#BigFive
🦁Kruger National Park, located in the northeast of South Africa, is the country’s oldest national park (founded 🗓in 1926) and one of the largest national parks in the world 🌍
To fully experience the park, visitors usually spend several days there. That is why campsites are located directly inside the park ⛺️
There are nine entrance gates, all of which close at night, as it is dangerous to remain in the park after dark without a guide 🌙⚠️
🐘🦏🦬🦁🐆
Kruger National Park is home to:
• about 12,000 elephants,
• 5,000 rhinos,
• 2,500 buffalo,
• 1,500 lions,
• 1,000 leopards,
• and hundreds of bird species🐦
📹Video: 10 minutes with the inhabitants of Kruger National Park
https://www.youtube.com/watch?v=ZnbsthIPMiw
#Nature#Animals#KrugerNationalPark#SouthAfrica#BigFive#Wildlife#Africa
🦁Национальный парк Крюгера на северо-востоке ЮАР — старейший национальный парк страны (основан 🗓 в 1926 году) и один из крупнейших национальных парков мира 🌍
Чтобы по-настоящему прочувствовать масштаб и атмосферу парка, сюда приезжают на несколько дней. Именно поэтому прямо на его территории работают кемпинги ⛺️
Всего у парка 9 въездов, которые закрываются на ночь — находиться здесь после захода солнца без проводника опасно 🌙⚠️
🐘🦏🦬🦁🐆
В Крюгере обитают:
• около 12 000 слонов,
• 5 000 носорогов,
• 2 500 буйволов,
• 1 500 львов,
• 1 000 леопардов,
• а также сотни видов птиц🐦
📹Видео (10 минут с обитателями парка Крюгера):
https://www.youtube.com/watch?v=ZnbsthIPMiw
#Природа#Животные#НациональныйПарк#Крюгер#ЮАР#BigFive#Африка
💴South African rands are, arguably, among the most beautiful banknotes and coins in the world 🌍✨
South African banknotes feature the iconic “Big Five” animals 🐘🦁🦏:
• R10 — rhinoceros
• R20 — elephant
• R50 — lion
• R100 — buffalo
• R200 — leopard
The reverse side of each note features Nelson Mandela, honoring his legacy as a symbol of democracy, freedom, and national unity in South Africa ✊🏿🇿🇦
#SouthAfrica#Currency#rands#BigFive#NelsonMandela#Heritage#Culture
🐆Inverdoorn Game Reserve – a true safari escape just 2.5 hours from Cape Town! 🐾
🌿 Located in the semi-arid Karoo region, Inverdoorn offers unforgettable encounters with the Big Five and cheetah conservation experiences.
🌍 Take a guided game drive, stay overnight in stylish lodges, and enjoy the stunning silence of the wild. 🌄
📍 Perfect for a weekend getaway into nature’s heart.
🎬 Video: https://www.youtube.com/watch?v=31OzaX7N5TA
#SouthAfrica#Safari#Inverdoorn#Wildlife#CapeTownTrips#GameReserve#BigFive
🐘А вы знали, что…
слон — один из представителей знаменитой африканской «Большой пятёрки»?
🐾 Этот термин появился у охотников на крупную дичь и обозначал пять самых опасных животных при охоте пешком в Африке.
В легендарную пятёрку входят:
слон, лев, леопард, африканский буйвол и носорог🦁🐆🦏
#BigFive#Африка#ЮАР#Слон#ДикаяПрирода
_______________
🐘Did you know?
The elephant is one of Africa’s famous Big Five.
🐾 The term Big Five was coined by early big-game hunters and refers to the five most dangerous animals to hunt on foot in Africa.
The iconic group includes the elephant, lion, leopard, African buffalo, and rhinoceros🦁🐆🦏
#BigFive#SouthAfrica#Africa
#Elephant#Wildlife
🐆Inverdoorn Game Reserve — сафари под Кейптауном! 🇿🇦
🌿 Всего в 2,5 часах езды от Кейптауна находится заповедник «Инвердурн» — уникальное место в полупустыне Кару, где можно увидеть Большую африканскую пятёрку, поучаствовать в программах по защите гепардов и насладиться настоящей дикой природой.
🌍 Стильные лоджи, тишина саванны и профессиональные гиды сделают поездку незабываемой. 🌄
📍 Идеальный вариант для сафари на выходные.
🎬 Видео: https://www.youtube.com/watch?v=31OzaX7N5TA
#ЮАР#Сафари#Inverdoorn#ДикаяПрирода#ПутешествияЮАР#BigFive#Гепард
🇿🇦Tembe Elephant Park🐘
The park was established in the north-eastern part of South Africa in 1983 to protect elephants migrating between South Africa and Mozambique. 🌍
It opened to visitors in 1991 and is now home to about 250 of the largest elephants in the world. 🏞
If you’re into safaris, you can also spot the rest of the Big Five — 🦁 lions, 🐆 leopards, 🦏 rhinos, and 🐃 buffalo.
🎥 Live video:
👉https://www.youtube.com/watch?v=VUJbDTIYlM4
#SouthAfrica#Nature#Safari#BigFive#Elephants#Tembe#Wildlife#Travel#Africa