アンパックの仕方について疑問があります。
ある学習の中で次のようなコードが成立しているのを確認しました。
Python
1arg = [1, 2, 3, 4, 5, 6] 2kwarg = {"sep": ""} 3print(*arg, **kwarg) # 123456
これが成立しているため、私は「1\n2\n3\n4\n5\n6\n」をまず読み込み、次に「sep=""」を読み込み、結果的に「123456」と表示される。つまり「print(1, 2, 3, 4, 5, 6, sep="")」という記述と全く同じことをしていると解釈しました。
そのため
Python
1arg = [1, 2, 3, 4, 5, 6] 2kwarg2 = {"a": "b"} 3print(*arg, **kwarg2)
というコードを入力すれば「print(1, 2, 3, 4, 5, 6, "a"="b")」と同じ状態を表し
1 2 3 4 5 6 a = b
と出力されると予測しましたが、結果はエラーで「TypeError: 'a' is an invalid keyword argument for print()」と表示されました。
辞書のアンパックの仕組みがよくわかりません。調べてみましたが、超初歩的な内容であるためかこれについて解決できるページが見つかりませんでした。
なぜ{"sep":""}はアンパックしてprintすることができたのか、そしてなぜ{"a":"b"}はアンパックしてprintできないのかわかりません。裏でどのような処理、読み込みが行われているのか等、ご教授いただきたいです。
宜しくお願い致します。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/15 03:24