我有一个二进制数列表,仅对于素数索引,该位需要从0翻转为1或从1翻转为0。二进制数列表实际上接近100位长度。我有一个例如8位长的代码,但是它没有显示预期的输出:
def prime_index (input):
p = list(input)
s = ""
# Loop to check if
# index prime or not
for i in range (2, len(p) + 1):
if isPrime(i):
s = s + input[i-1]
flip = {'0': '1', '1':'0'}
flip=(flip[input[i]])
print (flip)
print (s)
input="11111111"
prime_index(input)
我得到这样的输出:
0
0
0
0
1111
结果应显示如下,其中索引[2,3,5,7]的位翻转了:
output:11001010
希望有人可以帮助我。谢谢。
答案 0 :(得分:0)
那是因为在翻转输入之前您正在做s = s + input[i-1]
,并且当索引不是素数时,您不会追加s
。试试这个。
def prime_index (input):
p = list(input)
s = ""
# Loop to check if
# index prime or not
for i in range (0, len(p) - 1):
if isPrime(i):
flip = {'0': '1', '1':'0'}
flip=(flip[input[i]])
print (flip)
s = s + flip
else:
s = s + input[i]
print (s)
input="11111111"
prime_index(input)