2010-04-09 67 views
1

我该怎么做才能得到这个错误?Python:需要多个值才能解压

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); 

错误:

Traceback (most recent call last):
File "", line 1, in for doot, (a, b) in replacements: ValueError: need more than 1 value to unpack

所有值的元组有两个值。对?

回答

9

它应该是:

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

ARG ..打电话.items()像第三个例子打我给它 – YuppieNetworking 2010-04-09 16:33:28

+0

那准是他。一般问题虽然,为什么不: .... 定界符在更换: open_tag,close_tag =替换[分隔符] .... – AlG 2010-04-09 16:36:29

+0

@ qor721:早期拆包是更高效,更地道,我会说 – SilentGhost 2010-04-09 16:39:50

2

我认为你需要在this link

for delimiter, (open_tag, close_tag) in replacements.items(): # error here 
    message = self.replaceFormatting(delimiter, message, open_tag, close_tag) 
相关问题