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