gpt4 book ai didi

带有元组的 Python for 循环

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:04 25 4
gpt4 key购买 nike

我很难理解这个 for 循环。我是 python 的新手,所以我不明白这里到底发生了什么。该代码用于html转义。

我的问题是:for 循环是如何执行的?为什么 for(i,o) in (.........) 这怎么会是真的?它怎么知道字符串s中有&符号呢?

def escape_html(s):
for(i,o) in (("&", "&amp;"),(">","&gt;"),('<','&lt;'),('"',"&quot;")):
s=s.replace(i,o)
return s



print escape_html("hello&> this is do\"ge")

最佳答案

首先您需要了解元组拆包。

(a, b) = ("foo", 1)

此表达式将 "foo" 分配给 a1 b。可以在循环内部使用相同的语法来解压缩正在循环的迭代器对象的元素。

因此,对于循环中的每个元素,您都在解包嵌套元组(可迭代)的元素。

def escape_html(s):
for (i,o) in (("&", "&amp;"),(">","&gt;"),('<','&lt;'),('"',"&quot;")):
s = s.replace(i,o)
return s

展开循环会给你这样的东西:

def escape_html(s):
s = s.replace("&", "&amp;")
s = s.replace(">","&gt;")
s = s.replace('<','&lt;')
s = s.replace('"',"&quot;")
return s

关于带有元组的 Python for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com