python - 将前导零添加到字符串 Python

标签 python python-3.x

<分区>

我已经有一个算法可以做到这一点,但代码丑陋且缓慢。我假设库中有一个内置函数或某些函数可以提供更快、更精确的结果。

我想要的是我可以给出最终位数、字符串、列表或双端队列(最后可以转换为字符串的任何东西)。

func(totalBits, binaryInStringOrListForm) -> String or List with leading zeroes

我已经得到的代码如下:

 val = deque(["1", "0"])

     while len(val) < 8:

         val.appendleft("0")

顺便说一下,deque 是集合中的一种对象,它允许您leftappend,您可以在其中添加一个项目到列表的开头,而不必将所有内容都移动一个。

对此有旧答案,但它们都是 Python 2,并且整个格式设置发生了重大变化。

编辑:我认为这个问题与链接的问题不重复,因为@Martijn Pieters 让我意识到,我实际上是在前导零之后。

编辑:好的,它看起来是那个副本。抱歉被骗了。

我发誓的最后编辑:我刚刚注意到一些事情。当我试图让它长一个字节时,我不断得到像 000b0110 这样的值。这与我想要的 00000110 相反。我只是添加这个,这样如果将来有其他人查找这个问题,他们就会找到正确的东西。所以我所做的就是使用忽略字符串的前两个字符:

val = val[2::].rjust(8, '0')

我得到这个是因为我将一个数字转换为带有“bin”的二进制数,它返回一个开头有“0b”(声明为二进制)的字符串。

最佳答案

有一个内置的str.ljust() method .它采用目标宽度和可选的填充字符(默认为空格)。您可以使用它来填充带有 '0' 字符的字符串:

val = val.ljust(8, '0')

还有一个等价的str.rjust() method在左侧添加填充。

但是,如果您想要前导 零(而不是尾随),我会使用 str.zfill() method因为这会考虑任何 -+ 前缀。

关于python - 将前导零添加到字符串 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777690/

相关文章:

python - 不允许同时指定 'fields' 和 'form_class'

javascript - 如何将 Python 脚本整合到我的网站中?我需要一个框架吗?

python-3.x - 从法语文本中检测人名/实体名称的最佳方法

android - Windows 上的 Python/Kivy 应用程序到 apk - 安装虚拟机后该怎么办?

python-3.x - 从 Cloud Functions 中的父目录或同级目录导入模块?

python - 用于 Linux 的 VISA SCPI 命令处理器

python - 如何取回枚举元素的名称?

python - 首次保存时从用户模型获取 OneToOneField 数据

python - 鸭子类型(duck typing)实践 - Python 3.7

python-3.x - 在生成器中使用上下文管理器是否会导致资源泄漏?