python乙個 和兩個 代表什麼意思???

2021-10-02 18:16:23 字數 1545 閱讀 3519

有時可能需要乙個函式能處理比當初宣告時更多的引數。這些引數叫做不定長引數,宣告時不會命名。

乙個星號*的變數args會存放所有未命名的變數引數,args為元組;

兩個星號**的變數kwargs會存放命名引數,即形如key=value的引數, kwargs為字典。

例如:

def

add(a,b,

*args,

**kwargs)

:print

("a ="

,a)print

("b ="

,b)# *args 代表傳入的為元組型別

print

("args ="

,args)

# **kwargs 代表傳入的為字典型別

print

("kwargs ="

,kwargs)

for key,value in kwargs.items():

print

(key,

" = "

,value)

add(1,

2,3,

4,5,

6,m=

7,n=

8,p=

9)

輸出資訊:

a = 1

b = 2

args = (3, 4, 5, 6)

kwargs =

m = 7

n = 8

p = 9

注意另一種傳入引數的寫法:

def

add(a,b,

*args,

**kwargs)

:print

("a ="

,a)print

("b ="

,b)# *args 代表傳入的為元組型別

print

("args ="

,args)

# **kwargs 代表傳入的為字典型別

print

("kwargs ="

,kwargs)

for key,value in kwargs.items():

print

(key,

" = "

,value)

c =(3,

4,5)

d =add(1,

2,*c,**d)

print

("#"*30

)add(1,

2,c,d)

輸出如下,注意對比不同:

a = 1

b = 2

args = (3, 4, 5)

kwargs =

m = 7

n = 8

p = 9

##############################

a = 1

b = 2

args = ((3, 4, 5), )

kwargs = {}

所以:當傳入的是元組或者字典時,必須在前面加上星號(*)!!!!

python兩個佇列實現乙個棧和兩個棧實現乙個佇列

棧 先進後出 佇列 先進先出 思路兩個棧實現乙個佇列 思路 兩個棧 都是先進後出 push新增資料的時候,將data資料push到stack1 中,pop資料的時候,先判斷stack2種是否有資料 如果有資料的話,直接pop stack2中的資料 因為pop是直接彈出最後乙個資料 如果stack2中...

兩個棧實現乙個佇列和兩個佇列實現乙個棧

stack 後進先出 lifo 是在表的一端進行插入或刪除運算的線性表,我們把插入 刪除的這一端稱為棧頂 top 另一端稱為棧底 bottom e push e item 把元素壓入棧頂並返回此元素 e pop 移除棧頂元素並返回此元素 e peek 檢視棧頂元素而不移除它 boolean empt...

兩個棧實現乙個佇列和兩個佇列實現乙個棧

棧的特性 先進後出 filo 佇列的特性 先進先出 fifo 1 兩個棧實現乙個佇列 1 思路 入棧時,直接壓入棧1中 如果棧1滿了,判斷棧2是否為空,若為空,則將棧1元素全部倒入棧2,再入棧 若棧2不為空,則不能再入元素 出棧時,判斷棧2是否為空,若棧為空,則將棧1中的元素倒入棧2,否則直接彈出棧...