2013-07-24 5 views
6

나는 문자열 목록과 사전에 ValueError : 너무 많은 값이 파이썬 사전에 압축을 풀

def superDynaParams(myname, *likes, **relatives): # *n is a list and **n is dictionary 
    print '--------------------------' 
    print 'my name is ' + myname 

    print 'I like the following' 

    for like in likes: 
     print like 

    print 'and my family are' 

    for key, role in relatives: 
     if parents[role] != None: 
      print key + ' ' + role 

을 허용하는 기능을 가지고 있지만,

ValueError: too many values to unpack

내 매개 변수

입니다 오류를 반환
superDynaParams('Mark Paul', 
       'programming','arts','japanese','literature','music', 
       father='papa',mother='mama',sister='neechan',brother='niichan') 
+0

의 중복 가능성 [파이썬에 ValueError : 너무 많은 값이 압축을 풀] (http://stackoverflow.com/questions/7053551/python-valueerror-too-many-values-to-unpack) –

답변

13

사전을 반복합니다.

for key, role in relatives: 

그러나 오직 개의 키이 있으므로 한 번에 하나의 개체 만 생성됩니다. 당신은 반복하는 대신에 반복자를 사용한다

for key, role in relatives.iteritems(): 
0

:

for key, role in relatives.items(): 

파이썬 2 일, 효율성에 대한 dict.iteritems() 방법을 사용 : 당신은 키와 값을 통해 루프하려면 dict.items() 방법을 사용 항목 :

relatives.iteritems() 

for relative in relatives.iteritems(): 
    //do something 
관련 문제