我正在學(xué)習(xí)Python,并遇到了各種各樣的爭(zhēng)論。我不理解以下代碼產(chǎn)生的輸出:_list = [11,2,3]def print_list(*args): for value in args: a = value * 10 print(a)print_list(_list)當(dāng)我運(yùn)行程序時(shí),我得到:[11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3]據(jù)我了解,value從_list數(shù)組中保存一個(gè)元素,將其乘以 10 將生成列表[110, 20, 30]。為什么輸出不同?
2 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
因?yàn)楹瘮?shù)的參數(shù)是*args
(帶有*
),所以函數(shù)實(shí)際上接收傳入?yún)?shù)的元組,因此args
變?yōu)?code>([11,2,3],)(包含傳入列表的元組)。
您的函數(shù)遍歷該元組中的值,給出value=[11,2,3]
。當(dāng)你將一個(gè)列表乘以 10 時(shí),你會(huì)得到一個(gè)長(zhǎng) 10 倍的列表。
添加回答
舉報(bào)
0/150
提交
取消