为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守候你守候我 2022-05-19 16:20:19
我正在尝试从我的字符串 ( mirror) 中删除内容,但我遇到了以下问题。我试图将我指向的字符串部分放在里面int()。for i in mirror:     if mirror[i] == '\\':         mirror = mirror[i:i+2]
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

如果您尝试从字符串中删除字符,我可能会建议replace()而不是迭代字符串:


>>> a = 'abc//123'

>>> a.replace('//', '')

abc123

>>> b = a.replace('//', '')

>>> a

abc//123

>>> b

abc123

你得到一个TypeError因为i是一个str,而不是一个int。观察线for i in mirror-mirror是一个str,所以每个字符i也是mirror一个str。然后,您尝试使用str无效的 a 索引您的字符串,从而导致 a TypeError。


查看完整回答
反对 回复 2022-05-19
?
三国纷争

TA贡献1804条经验 获得超7个赞

字符串是可迭代的,所以当你输入这个时:


for i in "string":

    print i

你会得到这个


s

t

r

i

n

g

如果要获取字符串的索引,请使用enumerate


for i, c in enumerate("string"):

    print i,c

结果是:


0 s

1 t

2 r

3 i

4 n

5 g


查看完整回答
反对 回复 2022-05-19
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号