我有一个接受字符串,列表和字典的函数
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
Run Code Online (Sandbox Code Playgroud)
但它返回一个错误
ValueError:要解压缩的值太多
我的参数是
superDynaParams('Mark Paul',
'programming','arts','japanese','literature','music',
father='papa',mother='mama',sister='neechan',brother='niichan')
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 14
你正在循环字典:
for key, role in relatives:
Run Code Online (Sandbox Code Playgroud)
但这只会产生密钥,所以一次只能产生一个对象.如果要循环键和值,请使用以下dict.items()
方法:
for key, role in relatives.items():
Run Code Online (Sandbox Code Playgroud)
在Python 2上,使用该dict.iteritems()
方法提高效率:
for key, role in relatives.iteritems():
Run Code Online (Sandbox Code Playgroud)