gpt4 book ai didi

python - 查找字符串中第 i 个位置的值

转载 作者:行者123 更新时间:2023-12-01 07:18:25 25 4
gpt4 key购买 nike

我有一个二进制字符串。我在该字符串的每第 7 个位置处添加 1。使用以下代码。

 binary='1010010110000110100101100001'
# insert 1 after every 7 bit.
new_binary='1'.join(binary[i:i+7] for i in range(0, len(binary), 7))
print(new_binary)

我的输出字符串:

1010010111000011101001011100001

现在我想从输出字符串中删除那些额外的 1 并取回原始字符串。为此,我尝试确定这些 1 的位置,我尝试了以下方法:

binary='1010010111000011101001011100001'
# remove 1 after every 7 bit.
for i in range(0, len(binary), 7):
if((i+7) <len(binary)):
print("current position = ",i+7, "Value of the position: ", binary[i+7])
print("\n")

我当前的输出是:

('current position = ', 7, 'Value of the position: ', '1')
('current position = ', 14, 'Value of the position: ', '1')
('current position = ', 21, 'Value of the position: ', '1')
('current position = ', 28, 'Value of the position: ', '0')

现在从输出中,您可以看到第一个输出是正确的。但对于第二个输出,'当前位置='应该是15而不是14。第三个输出应该是23而不是21。并且不应该有第四个输出。有关于此的任何帮助。请。

注意:我正在尝试对更大的位字符串执行此操作。

最佳答案

相反的转换需要您使用 7+1 的步骤来删除每 7 个字符添加的额外 1

您可以通过每 8 个字符打印第 7 个字符来打印正确的位置,如下所示:

for i in range(0, len(new_binary), 8):
if((i+8) <len(new_binary)):
print("current position = ",i+7, "Value of the position: ", new_binary[i+7])
print("\n")

现在,如何检索原始字符串?

这可以通过用于创建第一个字符串的“反向”理解来完成。

binary='1010010110000110100101100001'
# insert 1 after every 7 bit.
new_binary='1'.join(binary[i:i+7] for i in range(0, len(binary), 7))
print(new_binary)

old_binary = "".join(new_binary[i:i+7] for i in range(0, len(new_binary), 8))
print(old_binary==binary)

打印True:)

关于python - 查找字符串中第 i 个位置的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57836224/

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