我有一個概念性問題。我有一些代碼片段及其相應的輸出ls = [1,2,3,4]a = '?'a, *ls = *ls, aa: 1 ls: [2, 3, 4, '?']ls = [1,2,3,4]a = '?'a, *ls = ls, aa: [1, 2, 3, 4] ls: ['?']ls = [1,2,3,4]a = '?'a, ls = *ls, aValueError: too many values to unpack (expected 2)第一個對我來說很有意義,但示例 2 和 3 讓我感到困惑。為什么第二個和第三個示例的輸出是這樣的?
1 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
示例 1 分配 5 個元素 ( *ls, a
)。第一個轉到第一個變量,其余的轉到帶星號的變量 ( a, *ls
)。
示例 2 分配 2 個元素 ( ls, a
)。第一個元素轉到第一個變量,其余元素(即另一個元素)轉到帶星號的變量 ( a, *ls
)。
示例 3 嘗試將 5 個元素 ( *ls, a
) 分配給恰好兩個變量。這將留下 3 個未分配的值,因此您會收到錯誤。
添加回答
舉報
0/150
提交
取消