リストや辞書(ディクショナリ)の最後にカンマを付けてみませんか?

結論から先に

業務でPythonを使っている方は、先輩方から教わっているかも知れません。独学でPythonを習得している場合、他人の生きたコードをある程度読んで真似をしていると気がつかずにその恩恵にあずかっているかも知れません。それでも全然構わないと思います。

そう言えば最後にカンマを付けると怒られる言語もありますね。JavaScriptなどはそうだった気がします。ですが、幸運なことにPythonでは叱られませんので、是非付けるようにしましょう。

メリット

このカンマ自身のメリットを語る前に、そもそも要素を1つ1行にすることから話を始めましょう。

上記の例では処理対象の都道府県をリストで保持していると思われます。これを1行に3都道府県とも並べて以下の様に記載することも出来ます。

prefecture_list = ["北海道", "青森県", "岩手県"]

新たに”秋田県”が追加されると

prefecture_list = ["北海道", "青森県", "岩手県", "秋田県"]

となります。当たり前のことですが、Git等を使ってソースコードを管理していると、どこが変わったのかをdiffの出力で確認することになりますが、行まで分かってその後が自力で探すという苦行が待っています。

この例だと秋田県だというのは明白です。では、20県ほどすでにあるところに中程に1つ追加されるとどうでしょう。

最初に結論に目を通しているので、何が言いたいかはお分かりかと思いますが、要素は1行1要素にするべきです。

そうすることで、一目瞭然です。

さて、1行1要素としたとして、最後の要素にもカンマを付ける理由ですが、勘の良い方ならお分かりかも知れません。そうです、最後に秋田県が追加されるときに岩手県の最後にカンマを付けると、2行が変更行になります。ですが、最初からカンマがついていると岩手県の行は変更していないことになります。

意外な?挙動

メリットの一部でもあるのですが、意外な挙動についても触れておきましょう。

もしも秋田県を追加するときに、岩手県の末尾にカンマを付け忘れたとします。

prefecture_list = [
	"北海道",
	"青森県",
	"岩手県"
        "秋田県"
]

for pref in prefecture_list:
    print(pref)

これを実行すると、

MacBookPro:src $ python list.py
北海道
青森県
岩手県秋田県
MacBookPro:src $

おっと、岩手県と秋田県がくっついてしまいました。そうなんです。とてもとてもやっかいなことに、勝手に結合してくれるんです。。。エラーになって欲しかったなぁ。

まとめ

ということで、最後の要素にカンマを付けていてもOK、付けておけば追加したときに変更行にならないし、付け忘れて意図せず結合されるという誰得な挙動に振り回されることもない。

リストディクショナリでは、1要素1行で末尾に必ずカンマを付加するようにしましょう。

Always Basics
ベテランコピペプログラマー。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です