TypeError: String indices must be integer in For Loop
TypeError: String indices must be integer in For Loop
我知道这可能是一个非常简单的编码错误,但我正在努力寻找反映与我所面临情况相同类型场景的信息。我确定它就在那里,但为了不花几个小时去寻找它,我想我只是问问它。
我的程序正在通过二进制字符串编制索引,我正尝试使用 for
循环遍历字符串并删除所有前导 0
。基本上,我只是用 j
编写了一个 for
循环作为索引变量,并将其设置为将索引 j
处的字符串与 1
进行比较,如果它是 1
然后在该点向前切割字符串......否则在它是 0
的情况下。在 if 语句行上抛出错误 TypeError: string indices must be integers.
我很困惑,因为我认为当您设置 for 循环时,索引变量自动是一个整数——不是吗?
imme = "00000000000001001011001100"
for j in imme:
if imme[j] == "1":
dec_imme = imme[j:]
else:
pass
如果在 Python 中还有任何其他更有效地执行此操作的方法,请随时发表评论。
for j in imme:
遍历 imme
中的每个 字符 。如果你想要整数索引,你应该使用 for j in range(len(imme)):
:
imme = "00000000000001001011001100"
dec_imme = ""
for j in range(len(imme)):
if imme[j] == "1":
dec_imme = imme[j:]
break
print(dec_imme) # Prints 1001011001100
但是,您不需要 for
循环来完成此任务;您可以使用 .lstrip()
代替:
print(imme.lstrip("0")) # Prints 1001011001100
我知道这可能是一个非常简单的编码错误,但我正在努力寻找反映与我所面临情况相同类型场景的信息。我确定它就在那里,但为了不花几个小时去寻找它,我想我只是问问它。
我的程序正在通过二进制字符串编制索引,我正尝试使用 for
循环遍历字符串并删除所有前导 0
。基本上,我只是用 j
编写了一个 for
循环作为索引变量,并将其设置为将索引 j
处的字符串与 1
进行比较,如果它是 1
然后在该点向前切割字符串......否则在它是 0
的情况下。在 if 语句行上抛出错误 TypeError: string indices must be integers.
我很困惑,因为我认为当您设置 for 循环时,索引变量自动是一个整数——不是吗?
imme = "00000000000001001011001100"
for j in imme:
if imme[j] == "1":
dec_imme = imme[j:]
else:
pass
如果在 Python 中还有任何其他更有效地执行此操作的方法,请随时发表评论。
for j in imme:
遍历 imme
中的每个 字符 。如果你想要整数索引,你应该使用 for j in range(len(imme)):
:
imme = "00000000000001001011001100"
dec_imme = ""
for j in range(len(imme)):
if imme[j] == "1":
dec_imme = imme[j:]
break
print(dec_imme) # Prints 1001011001100
但是,您不需要 for
循环来完成此任务;您可以使用 .lstrip()
代替:
print(imme.lstrip("0")) # Prints 1001011001100