比方說,我有一些代碼:解壓縮字典以作爲關鍵字參數傳遞時,如何將關鍵字映射到不同名稱的關鍵字參數?
def test(a, b, **kwargs):
print(kwargs)
l = {'a': 0, 'c': 1, 'foo': 2, 'bar': 3}
我想要做的就是要通過解壓縮字典入函數,但映射其關鍵c
到參數b
,同時保留不直接對應任何其他鍵到kwargs中的參數,所以函數應該輸出{'foo': 2, 'bar': 3}
。如果我做test(b=l['c'], **l)
,密鑰c
仍然是kwargs,輸出如下所示:{'foo': 2, 'bar': 3, 'c': 1}
。 test(**l)
,顯然,崩潰時出現錯誤 - test() missing 1 required positional argument: 'b'
。
怎麼可能做到這一點?
什麼做'kwargs =字典(kwargs)'點?克瓦格斯是不是一個字典? – Dariush
@Dariush,我已經在我的標題*中寫過,沒有改變初始輸入字典*,'kwargs = dict(kwargs)'會複製傳入的字典,初始字典保持不變。您的單鍵替換案例很簡單,我的方法是針對更復雜的案例 – RomanPerekhrest