Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять:
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
#аренда#А758⤴️фото⤴️
«О, вы из Франции?» — спросил мистер Кролик 🐇
Ну или история о том, как найти квартиру в Петербурге с налетом парижского шарма.
Щепотка постеров на французском, парочка букетов из сухоцветов 💐, радиоприемник, который вещает исключительно шансон 🤩— ваш круассан 🥐 готов! Ой, то есть la habitation français.
💸69.000₽/мес + к/у 60.000₽/мес + к/у
📐 42 м²
🪜 этаж 3 из 8
🔥#БЕЗКОМИССИИ
🙋🏻♀️Автор интерьера —Нина Гуревич и студия HotHomestaging**
📍Новосельковская, 3
📞 На связи собственник Роман @Roman_R100
*больше фото в комментариях ⤵️
**запретграм; используйте вэпээн
Нестыдные | Петербург.
Подписаться
#аренда#А758⤴️⤴️⤴️
#сноваактуальна
⛔️⛔️⛔️СДАНА⛔️⛔️⛔️
«О, вы из Франции?» — спросил мистер Кролик 🐇
Ну или история о том, как найти квартиру в Петербурге с налетом парижского шарма.
Щепотка постеров на французском, парочка букетов из сухоцветов 💐, радиоприемник, который вещает исключительно шансон 🤩— ваш круассан 🥐 готов! Ой, то есть la habitation français.
💸53.000₽/мес + к/у 52.000₽/мес + к/у
📐 42 м²
🪜 этаж 3 из 8
🔥#БЕЗКОМИССИИ
🙋🏻♀️Автор интерьера —Нина Гуревич и студия HotHomestaging**
📍Новосельковская, 3
📞 На связи собственник Роман @Roman_R100
*больше фото в комментариях ⤵️
**запретграм; используйте вэпээн
Нестыдные | Петербург.
Подписаться
💥 АКТУАЛЬНОСТИ ПОСТ | АРЕНДА💥
#А529
🔥#БЕЗКОМИССИИ
Лермонтовский пр., 10/53
140.000₽/мес
#А757
2-я Советская улица, 4б
180.000₽/мес + к/у 170.000₽/мес + к/у
#А762
Лесной проспект, 23А
75.000₽/мес + к/у
#А758
🔥#БЕЗКОМИССИИ
Новосельковская, 3
69.000₽/мес + к/у 66.000₽/мес + к/у
Если на канале выходила публикация с вашей квартирой в аренду и она сейчас актуальна — напишите в таком же формате* короткое сообщение в комментариях к этому посту ⤵️
- номер объявления (хэштег)
- адрес
- стоимость
Нестыдные | Петербург.
Подписаться
💥 АКТУАЛЬНОСТИ ПОСТ | АРЕНДА 💥
#А772
🔥#БЕЗКОМИССИИ
60к/мес + к/у 55к/мес + к/у
Кузнецовская, 58к1
#А758
53к/мес + к/у 52к/мес + к/у
🔥#БЕЗКОМИССИИ
Новосельковская, 3
#А776
🔥#БЕЗКОМИССИИ
170к/мес + к/у 160к/мес + к/у
1-я линия ВО, 22
#А478
🔥#БЕЗКОМИССИИ
70к/мес + к/у 65к/мес + к/у
Парфеновская, 7к3
#А346
🔥#БЕЗКОМИССИИ
лето: 150к/месяц + к/у
осень—весна: 120к/мес + к/у
Ленина, 35
#А666
190к/мес + к/у
Чайковского, 41
Если на канале выходила публикация с вашей квартирой в аренду и она сейчас актуальна — напишите в таком же формате* короткое сообщение в комментариях к этому посту ⤵️
- номер объявления (хэштег)
- адрес
- стоимость
Нестыдные | Петербург.
Подписаться
💥 АКТУАЛЬНОСТИ ПОСТ | ПРОДАЖАИ АРЕНДА 💥
#П434
22,4 млн 20,9 млн
наб. Миклухо-Маклая, 1к1
#П437
13,66 млн
Константина Заслонова, 19
#П433
12 млн 11,5 млн
Выборг, Проспект Суворова, 25
#П423
22 млн 21,49 млн
Большой пр-т Петроградской стороны, 45
#П425
35,9 млн 35,5 млн
Захарьевская, 27
___________________________
#А529
🔥#БЕЗКОМИССИИ
140.000₽/мес
Лермонтовский пр., 10/53
#А767
🔥#БЕЗКОМИССИИ
250.000₽/мес + к/у
18 линия В.О., д. 49
#А758
🔥#БЕЗКОМИССИИ
69.000₽/мес + к/у 60.000₽/мес + к/у
Новосельковская, 3
Если на канале выходила публикация с вашей квартирой в продажу или аренду и она сейчас актуальна — напишите в таком же формате* короткое сообщение в комментариях к этому посту ⤵️
- номер объявления (хэштег)
- адрес
- стоимость
Нестыдные | Петербург.
Подписаться