現在、内包表記の一つの辞書包括表記を勉強中です。
その途中で、辞書包括表記を元の長めのコードに戻してみたら成功したので、記事に残しておこうと思いました。
##内包表記とは
そもそも内包表記とは、一つ以上のイテレータからPythonデータ構造をコンパクトに作れるものです。(引用:Bill Lubanovic著 斎藤 康毅 監訳 長尾 高弘 訳 『入門Python3』 P.104
出版社:オライリー・ジャパン ISBN 978-4-87311-738-6)
辞書包括表記は内包表記の一つで、キーとバリューを用いた辞書の形式で内包表記をしていくものです。
##辞書包括表記を書いてみる
まずは、辞書包括表記を書いていきます。
文字列「python」の一文字ずつをキーとして、それぞれの文字のインデックスをバリューとします。
word = "python"
letter_index = {letter:word.index(letter) for letter in word}
print(letter_count)
>> {"p": 0, "y": 1, "t": 2, "h": 3, "o": 4, "n": 5}
このように辞書包括表記をはじめとした内包表記を利用すれば、forループを回して「python」の文字列の辞書を、一行で記述することができます。
まだ慣れるまで時間がかかると思いますけど、きっとめちゃくちゃ楽にコードを書いていけることでしょう!(多分)
##辞書包括表記を元の形に戻してみる
では、Pythonの練習がてら辞書包括表記を元の形に戻していきます。
word = "python"
letter_index = {}
for letter in word:
letter_index[letter] = word.index(letter)
print(letter_count)
>> {"p": 0, "y": 1, "t": 2, "h": 3, "o": 4, "n": 5}
やはり、空辞書を作ってちゃんとforループを使ってletter_countを辞書を作ると、コードが長くなりました。辞書包括表記が、有用であることがよく分かります。
でも、元の形に戻したらPythonの練習になったし、新しい練習方法を見つけられたので良かったです。
###引用
Bill Lubanovic著 斎藤 康毅 監訳 長尾 高弘 訳 『入門Python3』
出版社:オライリー・ジャパン ISBN 978-4-87311-738-6