使用Python传递列表和字典类型参数

pro*_*eek 3 python parameter-passing

当我运行此代码时

def func(x, y, *w, **z):
  print x
  print y
  if w:
      print w

  if z:
      print z
  else:
      print "None"

func(10,20, 1,2,3,{'k':'a'})
Run Code Online (Sandbox Code Playgroud)

我得到的结果如下.

10
20
(1, 2, 3, {'k': 'a'})
None

但是,我的预期如下,我的意思是匹配*w的列表参数(1,2,3)和字典匹配**z.

10
20
(1,2,3)
{'k':'a'}

问:出了什么问题?如何将列表和字典作为参数传递?

添加

func(10,20, 10,20,30, k='a')
Run Code Online (Sandbox Code Playgroud)

好像在起作用

Dan*_*ach 7

在字典前放两个星号:

func(10,20, 1,2,3,**{'k':'a'})
Run Code Online (Sandbox Code Playgroud)