2010-04-09 62 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) 
相關問題