72502


Pythonの引数展開について勉強しているのですが、期待した動作と違う理由を教えて下さい。

[code]

    data = ['こんにちは', 'おはよう', 'おやすみ']
    keywd = {'sep': ',', 'end': '●'}
    print(*data, **keywd) #結果；こんにちは,おはよう,おやすみ● 
    
[/code]

期待した答え

[code]

    #結果；こんにちは おはよう おやすみ , ● 
    
[/code]


CC BY-SA 4.0
2020-12-08T13:56:56.743
72501
2020-12-08T14:18:48.657
22565
question
python python3
Pythonの辞書型をキーワード引数への展開が期待した動作と違う。


ドキュメントにもある通り、`sep`は区切りを`end`は最後に表示する文字列を表します。

> print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)  
>  objects を sep で区切りながらテキストストリーム file に表示し、最後に end を表示します。sep 、 end 、 file 、
> flush を与える場合、キーワード引数として与える必要があります。  
>  [組み込み関数(print)](https://docs.python.org/ja/3/library/functions.html#print)

期待する出力にするには下記コードにしてください。

[code]

    data = ['こんにちは', 'おはよう', 'おやすみ']
    keywd = {'end': ', ●'}
    print(*data, **keywd)
    # こんにちは おはよう おやすみ, ●
    
[/code]


CC BY-SA 4.0
2020-12-08T14:18:48.657
72502
2020-12-08T14:18:48.657
39819
72501
answer