在python中将数字表示为二的幂之和的最快方法是什么

2024-02-08

例如

>>> two_powers(42)
>>> (2, 8, 32)

我目前的幼稚实现(取自here https://stackoverflow.com/a/27936818/1177288)看起来像那样

def two_powers(num):
    return tuple(2 ** i for i, j in enumerate(bin(num)[-1: 1: -1]) if j == '1')

但我希望有更快的方法来做到这一点。


尝试这个:

def two_powers(num):
    powers = []
    while num != 0:
        powers.append(num & -num)
        num = num & (num - 1)
    return powers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中将数字表示为二的幂之和的最快方法是什么 的相关文章

随机推荐

  • 请求被中止:无法创建 SSL/TLS 安全通道。

    我想实现 Paypal dodirect 方法 让用户可以直接在我的网站上付款 而不是重定向到用户 因此我已将此 URL 添加为https www sandbox paypal com wsdl PayPalSvc wsdl https w
  • 安全注意事项 - ChromeDriver - Chrome 的 Webdriver

    我想知道是否有人了解有关此声明所涉及的使用 chromedriver 的具体风险的更多信息 如果可能 请使用无法访问敏感本地或网络数据的测试帐户运行 ChromeDriver ChromeDriver 永远不应该使用特权帐户运行 想知道使用
  • 如何开始使用 Delphi 创建我自己的类?

    我已经发布一个问题 https stackoverflow com questions 11270972 declare locally or globally in delphi几天前 答案告诉我创建自己的课程 我是一名来自 OOP 时代
  • 在 Rust 中确定 DynamicImage 的位深度

    如何确定一个位深度image DynamicImage生锈了 我在用着fltk rs https docs rs fltk 0 11 6 fltk function https docs rs fltk 0 11 6 fltk image
  • javascript中双精度到字节数组的转换

    我正在尝试将一些 Java 代码转换为我正在开发的应用程序所需的 JavaScript 我被困在一个类及其方法上 这些方法将 double 类型的变量转换为 long 然后将 long 转换为由表示该 long 数字的 8 个字节组成的字节
  • 为什么不总是使用 GUID 而不是整数 ID?

    使用 GUID 有哪些缺点 为什么不总是默认使用它们呢 其一 整数的连接速度要快得多 当处理数百万行时 这一点尤其重要 对于两个来说 GUID 比整数占用更多的空间 同样 在处理数百万行时非常重要 对于三个来说 GUID 有时采用不同的格式
  • AVI 文件的 Flash 视频播放器(免费用于商业用途)

    是否有可免费用于商业用途且能够播放 AVI 文件的 Flash 视频播放器 JW Player 是不可能的 因为在自述文件中它指出公司的使用被视为商业用途 需要不同的许可证 Flash 本身并不处理 AVI 容器格式 它只能播放符合某些特定
  • 如何在 Flutter 移动应用程序的 API 调用中传递基本身份验证凭据?

    我正在开发一个简单的 Flutter 移动应用程序 需要调用使用基本身份验证的 API 我可以使用电子邮件和密码凭证来访问 Postman 中的 API 它会在执行请求之前以 Base64 格式对电子邮件和密码进行编码 我假设用 分隔 我不
  • 为什么我的 RSS 源会重复某些条目?

    当使用 Thunderbird 提要阅读器阅读我的 RSS 提要时 某些条目是重复的 谷歌读者 https en wikipedia org wiki Google Reader没有同样的问题 这是错误的 feed http plcoder
  • Oracle 中的视图和物化视图有什么区别?

    Oracle 中的视图和物化视图有什么区别 物化视图基于磁盘 并根据查询定义定期更新 视图只是虚拟的 每次访问时都会运行查询定义
  • 获取对象类型并相应地分配值

    我有一个数组列表不同类型的值其中 第一个值 gt string 第二个值 gt datetime 第三个值 gt boolean第四个值是int 我如何找到它们的类型并相应地分配值 任何帮助将不胜感激 这是我的代码 foreach obje
  • 有没有办法将类作为参数传递给 JAXB XMLAdapter 或从另一个类访问 Getter 方法

    我正在尝试创建一个XMLAdapter我的一个对象的类 我需要访问Getters来自另一个类 以便可以从该类的 Getters 填充某些对象 但我无法这样做 基本上 我想访问我的Child class Getter内的方法XMLAdapte
  • 测试文件/目录是否只读

    好吧 我是一个 C 新手 如何测试一个文件在 Windows 上是否只读 我尝试使用 GetFileAttributes 函数进行一些操作 但无济于事 给定文件的路径 测试它是否只读的正确方法是什么 Edit 所以我现在还停留在这一点上 我
  • 如何在Flutter中绘制带有尖角三角形的线?

    我正在考虑实施以下设计 如何实现如上图所示的线上的三角形凹凸 我是颤振的新手 对如何开始这方面一无所知 很简单 你只需要了解如何使用剪刀即可 方法如下 你需要使用ClipPath override Widget build BuildCon
  • AngularJS 两个 http get 在一个控制器中会出现问题

    我在一个控制器中有两个 http GET 有时它可以工作 并且其中两个正在工作 有时只有一个 http Get 可以工作 有时它们都没有显示 有什么建议么 controller nextSidorAdminCtrl function sco
  • Firebase 数据库安全,无需 Firebase 身份验证

    我在 Play 商店上发布了一个应用程序 我想在该应用程序中实现 firebase 我已阅读所有文档 但有两个疑问 如果有人在我的应用程序中使用 apk 反编译器并获取 google services json 他们可以对数据库做任何他们想
  • 如何将 CKFinder 与 Laravel 集成?

    我正在尝试将 CKFinder 与 Laravel 集成 我已经完成了 95 左右 我可以让一切正常工作 除了CheckAuthentication功能 我必须做到return true无论上传是否有效 我尝试做的是在 config php
  • 如何获取按计数列排序的组

    很难用简单的英语问这个问题 所以我会展示我正在尝试做的事情 这是我的 SQL 代码 select top 100 Name COUNT Name as total from ActivityLog where Timestamp betwe
  • 如何预加载 .net 程序集

    在我的工作中 我们正在使用 net Framework 4开发不同的应用程序 所有应用程序都使用我们开发的通用程序集 例如data dll中的数据层 这些应用程序驻留在网络驱动器上并直接从那里启动 大多数大型应用程序第一次启动 冷启动 需要
  • 在python中将数字表示为二的幂之和的最快方法是什么

    例如 gt gt gt two powers 42 gt gt gt 2 8 32 我目前的幼稚实现 取自here https stackoverflow com a 27936818 1177288 看起来像那样 def two powe