2016-03-30 26 views
0

Ben bir işlevi var neden bilemiyorum, açmak için:ValueError: Çok sayıda değerler

def store(word, info_list): 
    for a, b, c, in info_list: 
     data = {} 
     ... 

ve seni arıyorum:

store(x[0],x[1]) 

Nerede

x = (u'sergeev', (u'2015 afc asian cup group b', 
(u'2015 afc asian cup group b', u'sergeev', 372.57022256331544), 0.22388357256778307)) 

Benim Hedef yapmaktır:

a=u'2015 afc asian cup group b' 
b=(u'2015 afc asian cup group b', u'sergeev', 372.57022256331544) 
c=0.22388357256778307 

Ama

in store 
for a,b,c, in info_list: 
ValueError: too many values to unpack 

uyuşmazlığı ... kimse bana yardımcı olabilir nerede olduğunu bulamadı var?

+0

Yepp bunu o 3 öğe üzerinde yineleme çünkü yapmanız şekilde adımlayabilirsiniz bir liste olmayacak yolu X atarsanız o ana sebebi: Aşağıdaki örnekte göz at tek tek ve grup olarak değil. X = (('2015 ...', '2015 ...', 0.22),) 'yi deneyin ve farkı görün. – Torxed

cevap

0

ben devreye eklenen bu ihtiyacı yoktur, neden sadece böyle atanmaz:

def store(word, info_list): 
    a, b, c = info_list[0], info_list[1], info_list[2] 
1

yerine for döngü kullanmak yerine, basitçe elemanlarını açmak.

def store(word, info_list): 
    a, b, c = info_list 

x[1] (işleve geçiyoruz değer) temelde basit başlık olur. Sadece değerleri açmak için burada yeterlidir.

Bir tuple demetiniz olduğunda for döngüsünü kullanabilirsiniz.

>>> a = ((1, 2), (2, 3), (3, 4)) 
>>> for i, j in a: 
...  print i, j 
1 2 
2 3 
3 4 
İlgili konular