为什么这个 if 语句会导致“TypeError:字符串索引必须是整数”?

我正在尝试从我的字符串 ( mirror) 中删除内容,但我遇到了以下问题。

我试图将我指向的字符串部分放在里面int()

for i in mirror:
    if mirror[i] == '\\':
        mirror = mirror[i:i+2]


守候你守候我
浏览 153回答 2
2回答

泛舟湖上清波郎朗

如果您尝试从字符串中删除字符,我可能会建议replace()而不是迭代字符串:>>> a = 'abc//123'>>> a.replace('//', '')abc123>>> b = a.replace('//', '')>>> aabc//123>>> babc123你得到一个TypeError因为i是一个str,而不是一个int。观察线for i in mirror-mirror是一个str,所以每个字符i也是mirror一个str。然后,您尝试使用str无效的 a 索引您的字符串,从而导致 a TypeError。

三国纷争

字符串是可迭代的,所以当你输入这个时:for i in "string":    print i你会得到这个string如果要获取字符串的索引,请使用enumeratefor i, c in enumerate("string"):    print i,c结果是:0 s1 t2 r3 i4 n5 g
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python