2017-10-12 74 views
0

在Python中我有一個像下面ValueError異常:太多值列表中的解壓

in_list =[u'test_1,testing_1', u'test_2,testing_2', u'test_3,testing_3'] 

我想打印在一個循環該列表中的值的列表

for test, testing in input: 
    print test, testing 

我得到這個錯誤:

ValueError: too many values to unpack 

什麼是正確的方法?

+0

你能分享你想要得到的輸出? – Mureinik

+0

你期待什麼'爲了測試,在輸入測試:'做到完全? – roganjosh

+0

@Mureinik我想要'test_1,testing_1'' test_2,testing_2'' test_3,testing_3' –

回答

2

你必須在右側的三個值的列表;你在左邊只有兩個變量。將序列(列表,在你的情況中)分配給一系列變量稱爲「解包」。您需要必須在值和變量之間具有1:1的對應關係才能使用。

我認爲你正在試圖做的是通過逗號分隔值對迭代。嘗試像下面的代碼。通過您的輸入列表中的三根弦迭代(使用不同的變量名:輸入是內置的功能)。對於每個字符串,請用逗號分隔它。這給你一個兩個值的列表...和那些你可以解壓縮。

for pair in input_list: # "input" is a built-in function; use a different name 
    test, testing = pair.split(',') 
    # continue with your coding 
+1

'...你必須有一個1:1的對應關係...' - 除非你使用Python 3.x版它提供[擴展可迭代開箱](https://www.python.org/dev/peps/pep-3132/)。 – wwii

相關問題