我一直在尝试将字符串编码(ex: aabbbacc)
为类似a2b3a1c2
这样的代码:
string_value = "aabbbacc"
temp_string = ""
for i in range(0, len(string_value)):
if i != len(string_value) or i > len(string_value):
temp_count = 1
while string_value[i] == string_value[i+1]:
temp_count += 1
i += 1
temp_string += string_value[i] + str(temp_count)
print(temp_string)
问题是即使我添加了一个if
条件来阻止越界发生,我仍然收到错误
Traceback (most recent call last):
File "C:run_length_encoding.py", line 6, in <module>
while string_value[i] == string_value[i+1]:
IndexError: string index out of range
我也试过
string_value = "aabbbacc"
temp_string = ""
for i in range(0, len(string_value)):
count = 1
while string_value[i] == string_value[i+1]:
count += 1
i += 1
if i == len(string_value):
break
temp_string += string_value[i]+ str(count)
print(temp_string)
现在,我知道可能有更好的方法来解决这个问题,但我试图理解为什么我得到了越界异常,即使我有一个 if 条件来防止它,我在逻辑的哪一部分出错了请解释...