TGINSIGHT SIMILAR POSTS
Најди сличен содржај
Изворен канал @pythonotes · Post #291 · 18 окт.
Все уже успели обсудить новые фишки в Python 3.10, такие как ускорение работы базовых типов, удобная типизация и особенно новый паттерн матчинг. Только ленивый не рассказывал про паттерн матчинг! Давайте я прикинусь ленивым (но это не так😉) и не буду повторяться. Расскажу про другое нововведение. В противовес мега полезному pattern matching эта штука, на первый взгляд, имеет сомнительную полезность🧐 В Python 3.10 у типа int появился новый метод int.bit_count(). Что он делает? Возвращает количество единиц в битовом представлении числа. Что? Зачем? Почему? 😭❓😱 Это не bit_length(), возвращающий количество бит, необходимых для записи данного числа. И это не struct.calcsize("I"), возвращающий количество байт, в которые точно поместится любой int. Зачем нам количество ненулевых бит в битовом представлении? Особенно когда новый метод это просто эквивалент строки: bin(num).count("1") Цитата из слов автора. An efficient popcount would be useful for numerics, parsing binary formats, scientific applications and others. Эта функция называется Population Count (подсчёт популяции). Применяется в алгоритмах теории информации. Почитайте про Теорию Хэминга чтобы понять чуть больше чем сейчас. Если коротко, это такие алгоритмы, помогающие быстро определить схожесть или различие строк основываясь на их битовом представлении. Этим применение не ограничивается. Подсчет единиц может быть полезен при работе с битовыми картами. В Redis тоже есть подобная команда. Как считаете, это маленькая удобная функция делающая Python ближе к научному сообществу или бесполезная трата места в документации? #libs
Hashtags
Пронајдени 0 слични објави
Пребарај: #libs
Не се пронајдени слични објави.
Оваа објава нема претходно пресметани резултати на сличност.