我是python的新手,例如,我想用列表中的字符替换字符串中的字符。
tagFinder = ['<', '>','&']
safeTag = ['<','>','&']
for i in content:
return content.replace(tagFinder[i],safeTag[i]
我一直收到以下错误
TypeError:列表索引必须是整数,而不是字符串
有没有人能帮帮我的兄弟,提前谢谢!
发布于 2015-04-26 09:53:35
你可能是有意
for i in range(len(tagFinder)):
content = content.replace(tagFinder[i],safeTag[i])
..........
return content
而不是
for i in content:
return content.replace(tagFinder[i],safeTag[i])
而且,由于return语句,您还过早地退出了循环。返回语句应该是函数中的最后一条语句,假设这些语句位于函数中
但是,在这里使用内置的zip
总是更好的
for src, dest in zip(tagFinder , safeTag ):
content = content.replace(src, dest)
..........
return content
但是,除非这是家庭作业的一部分,否则您应该使用标准库来转义您的html字符串。在这种特殊情况下,cgi将非常有用。
>>> import cgi
>>> cgi.escape(data).encode('ascii', 'xmlcharrefreplace')
'<>&'
发布于 2015-04-26 09:54:35
如果您坚持要手动完成此操作:
tagFinder = ['<', '>','&']
safeTag = ['<','>','&']
for tag, safe in zip(tagFinder, safeTag):
content = content.replace(tag, safe)
但在Python中有一种更好的方法来转义HTML字符:
import cgi
content = cgi.escape(content)
https://stackoverflow.com/questions/29876127
复制相似问题