我很难理解这个for循环。我是python的新手,所以我不明白这里到底发生了什么。该代码用于html转义。
我的问题是:for循环如何执行?为什么(...,)中的for(i,o)为何如此?它怎么知道字符串s中有一个&符号?
def escape_html(s):
for(i,o) in (("&", "&"),(">",">"),('<','<'),('"',""")):
s=s.replace(i,o)
return s
print escape_html("hello&> this is do\"ge")
最佳答案
首先,您需要了解元组拆包。
(a, b) = ("foo", 1)
此表达式将
"foo"
分配给a
和1
b
。循环内部可以使用相同的语法来解压缩循环中的迭代器对象的元素。因此,对于循环的每个元素,您都在拆包嵌套元组的元素(可迭代)。
def escape_html(s):
for (i,o) in (("&", "&"),(">",">"),('<','<'),('"',""")):
s = s.replace(i,o)
return s
展开循环将为您提供以下内容:
def escape_html(s):
s = s.replace("&", "&")
s = s.replace(">",">")
s = s.replace('<','<')
s = s.replace('"',""")
return s
关于python - 带有元组的Python for循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21193847/