Python:需要超过1个值进行解包

2 投票
2 回答
2925 浏览
提问于 2025-04-15 21:25

我哪里做错了,为什么会出现这个错误呢?

    replacements = {}
    replacements["**"] = ("<strong>", "</strong>")
    replacements["__"] = ("<em>", "</em>")
    replacements["--"] = ("<blink>", "</blink>")
    replacements["=="] = ("<marquee>", "</marquee>")
    replacements["@@"] = ("<code>", "</code>")

    for delimiter, (open_tag, close_tag) in replacements: # error here
        message = self.replaceFormatting(delimiter, message, open_tag, close_tag); 

错误信息:

追踪记录(最近的调用在最前面):
文件 "", 第 1 行,在 for doot, (a, b) in replacements: 值错误:需要超过 1 个值来解包

所有的值元组都有两个值,对吧?

2 个回答

3

我觉得你需要像第三个例子那样调用 .items(),可以参考这个链接

for delimiter, (open_tag, close_tag) in replacements.items(): # error here
    message = self.replaceFormatting(delimiter, message, open_tag, close_tag)
10

应该是:

for delimiter, (open_tag, close_tag) in replacements.iteritems(): # or .items() in py3k

撰写回答