簡體   English   中英

使用Python傳遞列表和字典類型參數

[英]Passing list and dictionary type parameter with Python

當我運行此代碼時

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'})

我得到的結果如下。

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')

好像在起作用

在字典前放兩個星號:

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

我不確定“輸入”格式是什么,但這樣可行:

func(10,20, 1,2,3, k='a')

有了這個,你甚至不需要在最后把k = a放在那里,它可以在前兩個參數之后的任何地方。 那么1,2,3和其他“未命名的”參數會被塞進一個元組(我認為?)中,用於單星arg。

如果你想要更加明確,你可以做到

func(10,20,*[1,2,3],**{'k':'a'})

指定(對於讀者)您要使用每個特殊形式參數的參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM