質問: Pythonのプログラムについて Pythonのプログラムで、リストの値を引数としてとり、要素をカンマとスペースで並べ、最後の要素の前にandを挿入した文字列を返す関数を書きたいのですが、どうすればいいのかわかりません。 例えば、spam=['apples','bananas','tofu','cats'] のようなリストがあったとしたときに、プログラムを実行すると、 'apples, bananas, tofu and cats'と返すプログラムを作りたいです。 現在、andの前後の要素はspam[-2]とspam[-1]で処理し、その前のspam[0]からspam[-1]まではループか何かを使うのではないかと予想して取り組んでいるのですが、うまくいきません。 具体的なエラーではなく、プログラム丸ごとの質問で申し訳ないのですが、どなたかアドバイスお願いします。
回答: 先頭からtofuまでの要素は、 間に', 'を入れるわけですね。これは、 ``` ', '.join(spam[:-1]) ``` とかけます。 最後に、' and cats' を追加すればいいので、 ``` ', '.join(spam[:-1]) + ' and ' + spam[-1] ``` というのでどうでしょうか。 さらにf文字列というのを使うとスッキリかけます。 ``` f"{', '.join(spam[:-1])} and {spam[-1]}" ```