Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
📌 Onlayn ish intervyulariga tayyorgarlik ko'rish uchun 6 dona maslahat
1. Texnologiyalar bo'yicha bilim va ko'nikma
Kompaniya talab qilgan texnologiyalar bo'yicha ko'nikmalaringiz bo'lishi muhim
2. Oldindan mashq qiling va tayyorlaning
Oldindan bo'lib o'tadigan suhbatga tayyorlaning, bu suhbatni qulay o'tkazishingizga yordam beradi
3. Vaqtida qatnashing
Suhbatga vaqtida tayyor bo'lib turing imkoni bo'lsa 15 minut oldin o'riningizga joylashib oling
4. Professional tarzda kiying
Ko'pchilik onlayn suhbat bo'lganligi sababli o'z kiyimlariga e'tibor berishmaydi, siz esa chiroyli va tartibli kiyining hamda yorug' xonaga joylashib oling
5. Diqqat bilan tinglang va aniq gapiring
Onlayn suhbatda, suhbatdoshingizni diqqat bilan tinglang va aniq mazmunli gapirishga harakat qiling
6. Suhbatdan keyin chiroyli xayrlashing
Suhbat tugallangandan so'ng, suhbatdoshingizga rahmat aytib u bilan chiroyli xayrlashing
#epam#dotnetuz
.NET Uzbekistan Community
______
Telegram | Instagram | Youtube
#vacancy#dotnetuz
“.NET Uzbekistan Community” is looking for a .NET instructor
We are looking for a .NET instructor who can help to our lead teachers remotely.
Requirements:
1. English (Elementary+)
2. C#/.NET (1+ year)
3. Mentoring
Salary: 5$ per hour
Contact:@iCloudBMX
.NET Uzbekistan Community
➖➖➖➖➖➖➖➖➖➖➖
Telegram | Instagram | Youtube
📌 EPAM Training Center launches an internship for aspiring .NET Developers.
The program focuses on teaching you to solve tasks and getting practical experience. You will learn the concepts of .NET and the most common technologies, frameworks, and tools for working with .NET Core.
Upon completing the program, you will have an opportunity to join our global team of 61 600+ brilliant minds.
Learn more about our requirements and apply via the links below.
https://training.epam.uz/Training/Details/3384?lang=en
#epam#intern#dotnetuz
.NET Uzbekistan Community
➖➖➖➖➖➖➖➖➖➖
Telegram | Instagram | Youtube
Background uchun rasm (o'zimizni maxsulot 😉)
Canva da o'zroq ter to'kdik, community ni kengaytirishga yordam bering!
#blue#background#dotnetuz
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
.NET School
DSR kompaniyasining kuchli mutaxassislaridan .NET ni ingliz tilida o’rganing. O’z ilmlarini ulashish maqsadida .NET school loyihasiga start beribdi. Balki, aktivlarni ishga olib qolar 🧐
Batafsil: https://t.me/DSR_Tashkent/47
#dsr#dotnetuz#school
.NET Uzbekistan Community
➖➖➖➖➖➖➖➖➖➖
Telegram | Instagram | Youtube
Doim olg'a
Ushbu video - job interview larda kamida 10 marta yiqilganlar uchun bag'ishlanadi!😄
👨🏫 Avtor: Abdukarim Mirzayev
#motivation#abdukarimmirzayev#dotnetuz
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
Siz ham harakat qiling!
dot-net.uz jamoasi a'zosi Suxrob Hayitmurodov EPAM Systems kompaniyasiga .NET bo'yicha internship ga qabul qilindi. Jamoa nomidan kelgusi ishlariga muvaffaqqiyatlar tilab qolamiz.
#epam#dotnetuz#yangilik#dotnet
.NET Uzbekistan Community
______
Telegram | Instagram | Youtube
Siz ham harakat qiling!
dot-net.uz jamoasi a'zosi Sultonbek Rahimov EPAM Systems kompaniyasiga .NET bo'yicha internship ga qabul qilindi. Jamoa nomidan kelgusi ishlariga muvaffaqqiyatlar tilab qolamiz.
#epam#dotnetuz#yangilik#dotnet
.NET Uzbekistan Community
______
Telegram | Instagram | Youtube
Siz ham harakat qiling!
dot-net.uz jamoa a'zosi Abdulloh Tolibjonov EPAM Systems kompaniyasiga .NET bo'yicha internship ga qabul qilindi. Jamoa nomidan kelgusi ishlariga muvaffaqqiyatlar tilab qolamiz.
#epam#dotnetuz#yangilik#dotnet
.NET Uzbekistan Community
______
Telegram | Instagram | Youtube
Siz ham harakat qiling!
dot-net.uz jamoa a'zosi Farrux Xolmatov EPAM Systems kompaniyasiga .NET bo'yicha internship ga qabul qilindi. Jamoa nomidan kelgusi ishlariga muvaffaqqiyatlar tilab qolamiz.
#epam#dotnetuz#yangilik#dotnet
.NET Uzbekistan Community
______
Telegram | Instagram | Youtube