gpt4 book ai didi

python - 使用 Python 将二进制字符串转换为整数列表

转载 作者:太空狗 更新时间:2023-10-30 00:23:12 24 4
gpt4 key购买 nike

我是 Python 新手。这是我正在尝试做的事情:

  1. 将一个长二进制字符串切成 3 位长的 block 。
  2. 将每个“ block ”存储到一个名为行的列表中。
  3. 将每个二进制 block 转换为数字 (0-7)。
  4. 将转换后的数字列表存储到名为数字的新列表中。

这是我目前所拥有的:

def traverse(R):
x = 0
while x < (len(R) - 3):
row = R[x] + R[x+1] + R[x+2]
???

感谢您的帮助!非常感谢。

最佳答案

应该这样做:

s = "110101001"
numbers = [int(s[i:i+3], 2) for i in range(0, len(s), 3)]
print numbers

输出是:

[6, 5, 1]

首先逐步分解:

>>> range(0, len(s), 3)
[0, 3, 6]

range()函数从 0 开始生成一个整数列表,小于最大 len(s),步骤 3。

>>> [s[i:i+3] for i in range(0, len(s), 3)]
["110", "101", "001"]

这是一个 list comprehension为上述范围内的每个 i 计算 s[i:i+3]s[i:i+3] 是一个 slice选择一个子字符串。最后:

>>> [int(s[i:i+3], 2) for i in range(0, len(s), 3)]
[6, 5, 1]

int(..., 2)函数将二进制(基数 2,第二个参数)转换为整数。

请注意,上述代码可能无法正确处理错误情况,例如输入字符串的长度不是 3 个字符的倍数。

关于python - 使用 Python 将二进制字符串转换为整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com