2017-10-12 75 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

相关问题