gpt4 book ai didi

python - 对迭代变量的更改未反射(reflect)在原始列表中

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:10 24 4
gpt4 key购买 nike

我正在尝试实现 HTML 转义功能

这是我的代码:

def escape_html(s):
for x in s:
if x == '>':
x = "&gt"
elif x == '<':
x = "&lt"
elif x == ' " ':
x = "&quot"
return s

s = "dasdasdas > < "
print escape_html(s)

我的输出与我的输入完全相同。为什么字符没有被替换?

预期输出:

dasdasdas &gt &lt 

实际输出:

dasdasdas > < 

最佳答案

for 循环遍历给定的可迭代对象,并在每次循环之前设置 in 之前的变量。它是一个像其他变量一样的变量。如果您尝试过此操作:

my_list = [1, 2, 3]
x = my_list[1]
x = 5

那么最后的 my_list 就不会等于 [1, 5, 3];不,您只需重新绑定(bind) x 即可,而不是更改您获取 x 的位置。您的 x 也遇到同样的问题。您需要以某种方式显式地将其放回 s 中。

无论如何,如果你想实际上转义 HTML,只需使用 cgi.escape .

关于python - 对迭代变量的更改未反射(reflect)在原始列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028764/

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