ディクショナリのキーをスマートに扱う

190722

ディクショナリのキーをスマートに扱う

ディクショナリを使った処理では、キーが存在するかどうかに気を付けて処理を行わなければなりません。キーを指定した代入を実行する際には、キーが存在しない場合は新たに追加されるので、問題はあまり起きません。気を付けなければならないのは、キーを指定してディクショナリの要素を参照する場合です。存在しないキーを使ってディクショナリの要素を参照しようとすると、例外(KeyError)が発生します。
例えば、ファイルに含まれる英単語の出現回数を数える処理を記述する場合、ディクショナリでは、キーとして同じ要素を登録できません。この性質を利用して、英単語をキーとして、出現回数(数値)を登録したディクショナリを作ることにします。
この例がアイキャッチに掲載したプログラムです。
① lineに英文を代入します
② wordcountの辞書を作ります
③ ループでは読み込んだ行にsplit()メソッドを使ってシーケンスを作っています。英文を空白文字で区切った結果が、1つずつ繰り返し変数に代入されていきます。英文の行が分割されて、繰り返し変数に英単語が代入され、ループが実行されます。
④ 繰り返し変数がディクショナリのキーとして登録されているかを調べています。もしキーとして登録されていたら、単語のカウントを1つ増加します。代入の右側では、キーを使ったディクショナリの参照が行われています。登録されていない単語が現れると、存在しないキーを参照することになります。そのため、in演算子を使ってキーが存在するかどうかを確認する必要があります。この処理がif文で行っていることです。
⑤ カウントに1を入れます。
⑥ ディクショナリのキーを打ち出しています。
⑦ ディクショナリを打ち出しています。

Dictionary-atomの場合

dictionary-PyCharmその2


↑人気ブログランキングに参加しています。ポチっと1票を!

Atom Hydrogen-format

Atom Hydrogen-formatその2

①ポジショナルパラメータ
②キーワードパラメータ
③引数として渡したディクショナリのキーを指定
④その結果
⑤sysモジュールのversionアトリビュートを使ってPythonのバージョンを表示する
⑥一つ目の要素を左詰めで、二つ目の要素を右詰めで

↑人気ブログランキングに参加しています。ポチっと1票を!

Atomでelif,elseがSyntax errorになる件

Atomでelif,elseがSyntax errorになる件。

Atomでelif,elseがSyntax errorになる件

西暦から元号(和暦)への変換プログラムの再掲載。

・AtomとPyCharm環境下でelse,elifを実行すると違った結果になる。
・AtomのHydrogen(Shift+Enter)を実行することは裏でJupyterが走っていることに他ならない。
・PyCharmでelifが正常に処理されることからProgramに誤りはない。
・Atom下でAlt+Rで実行するとErrorも起きないが処理結果もCode化けで正しく表示されない。
・AtomでAlt+Rで実行するには漢字などの2バイトコードを使うProgramは実行できない。
・これらのことからAtom下では限定的なプログラムにとどめて大部分はPyCharmで開発することになる。

① 西暦を入力させる
② 入力した年を表示する
③ 明治元年か?
④ 明治時代の何年か?
⑤ elifがSyntaxErrorとなる

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Python文字列メソッド④

Python文字列メソッドljust,center,rjust。

Python文字列操作④

Python文字列メソッドljust,center,rjust
①横幅40文字分に文字列を左詰めで配置する
②横幅40文字分に文字列を中央揃えで配置する
③横幅40文字分に文字列を右詰めで配置する
④スペースの代わりに「.」で埋める

↑人気ブログランキングに参加しています。よろしければ1票を!

Python文字列メソッド③

Python文字列メソッドsplit,join,strip,lstrip,rstrip。

Python文字列メソッド③

Python文字列メソッドsplit,join,strip,lstrip,rstrip
①文章をスペースで分割する
②itemsに分割したwordを入れる
③1から始めた4番目のwordは?「Is」
④分割したワードを結合する
⑤先頭の「I love you」を削除する
⑥左から先頭の「I」を削除する
⑦右から末尾の「True?」を削除する

↑人気ブログランキングに参加しています。よろしければ1票を!

Numpyを使ってXOR条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数XORを印書したところです。

Numpyを使ってXOR条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数XOR(排他的論理和)を印書したところです。

↑人気ブログランキングに参加しています。よろしければ1票を!

Numpyを使ってNAND条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数NANDを印書したところです。

Numpyを使ってNAND条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数NANDを印書したところです。
AND条件は2018/11/25付の記事を参照願います。

↑人気ブログランキングに参加しています。よろしければ1票を!

Python文字列メソッド①

「Goods 1000 2019/07/03」のように要素をスペースで区切った文字列データがある。1から数えて2番目の位置には、金額(商品原価)が記載されている。2番目の金額に、税(10%)を掛けた値を、文字列にして書き出す。これを変数sに代入しprintする。

「Python文字列メソッド」

「Goods 1000 2019/07/03」のように要素をスペースで区切った文字列データがある
1から数えて2番目の位置には、金額(商品原価)が記載されている
2番目の金額に、税(10%)を掛けた値を、文字列にして書き出す
これを変数sに代入しprintする
この次の記事でAtom Hydrogenで実行したものをアイキャッチ画像で提示する
①関数add_taxを定義する
②文字列をスペースで分割する
③1から始めて2番目の項目を整数にして1.1倍にする(税10%)
④それを2番目に戻す
⑤それを戻り値として文字列を結合して返す
⑥関数を呼び出す、戻り値を文字列変数sに代入する
⑦それをprintする
⑧結果がコンソールに表示される

↑人気ブログランキングに参加しています。よろしければ1票を!