TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #32 · 7 фев.

Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять: 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

Резултати

Пронајдени 2 слични објави

Пребарај: #nmbot

当前筛选 #nmbot清除筛选
nmBot 频道

@nmbotchannel · Post #236 · 18.05.2023 г., 08:28

迎接第 12 个全球无障碍宣传日:nmTeam 的愿景与行动 2023 年 5 月 18 日是第 12 个全球无障碍宣传日。一直以来,nmTeam 致力于为残障用户提供与其他用户一致的产品使用体验。 我们始终致力于优化 nmTeam 产品的无障碍体验,让每个人用起来都轻松。例如,最近我们: • 改进了 nmTeam 官方网站中图标和链接的标签文本; • 正在改进 nmBot 面板中部分元素和操作的屏幕阅读器体验。相关改进将会在 6 月更新和后续版本中发布。 点击这里,进一步了解 nmTeam 产品的辅助功能和无障碍承诺。 Celebrating the 12th Global Accessibility Awareness Day: nmTeam's Vision and Actions May 18, 2023 is the 12th Global Accessibility Awareness Day. nmTeam has been always committed to providing users with disabilities with the same product experience as other users. We are always working on optimizing the accessibility experience of nmTeam products, making it easy for everyone to use. For example, recently we: • Improved label text for icons and links in nmTeam official website; • Improved the screen reader experience for some elements and actions in the nmBot panel. Relevant improvements will be released in the June Update and subsequent releases. Click here to learn more about nmTeam's commitment to accessibility for our products. 🏷#Accessibility#nmBot 🔗https://newsroom.nmteam.xyz/news/nmteam/50-12th-Global-Accessibility-Awareness-Day-2023-05-18.html 👥@nmteamchat