diary主にVBAネタを扱っているブログです。その2Python前回は筋トレ用メトロノームをGUI化した。thom.hateblo.jpなるべく紹介済の機能に絞って書いたのでコードがとても冗長だ。前回GUIパーツをそれぞれ変数に入れて扱っていたため、今回はPythonのデータ型(リスト、タプル、ディクショナリ)を使ってもう少しスッキリさせてた。Pythonの基礎でこれらのデータ型が出てくるので、「何に使うねんこれ」と思うかもしれないけど、そのイメージを掴んでもらうためにも良いと思う。ent.insert(tk.END,initials[i])btn.place(x=70,y=130)root_window.mainloop()リストについてリストはVBAでいうコレクションのようなものだが、Pythonの場合[]の中にカンマ区切りで書くことで初期値を設定できる。初期値を設定する方法が無いので以下のように一つずつ要素を追加する。tone")item_names.append("Duration")以下のように単に[]内にカンマ区切りで同じリストを作成できる。"Duration"]また、空のリストを作りたければitem_names=list()とも書けるし、item_names=[]とも書ける。item_names[4]アンパックという記述方法があり、次のように書くとリストのそれぞれの要素が変数に入る。item_namesこれ、とても楽。ディクショナリについてVBAのディクショナリと同じく、キーと値の対応付けデータである。空のディクショナリを作っているのがこちら。{}文字列でキーを指定して値を入れることで追加・更新ができる。値タプルについて基本的にリストみたいなもの。追加や削除などの操作ができない。リストが主に同種データを扱うのに対し、タプルは異なる型のデータを纏める用途でよく使われるらしい。いうことで、ラベルとテキストボックスを纏めてみた。コード中に登場する以下のループ内では、item_namesリストから取り出したitem_nameをキーとしてディクショナリitemsに、ラベルとテキストボックスのタプルを格納している。width=10))そして配置する際は、ディクショナリitemsからitem_namesリストのi番目のキーでタプルを取り出し、lblとentにアンパックしている。ent.insert(tk.END,initials[i])一方でテキストボックス読み出しの際は、ラベルを取り出す必要はないのでアンパックではなく[1]を指定してゲット。※タプルの[0]にラベル、[1]にテキストボックスが入っている。int(items["Duration"][1].get())使用したデータの組み合わせ図おわりにデータ型を覚えるとコードの冗長性が無くなってコーディングが楽になる。今回は前回の半分くらいのコード量になった。変数名を大量に管理する必要がなくなり、変更にも強くなる。今回の記事で、あまりついてこれなかった方も、基礎をしっかり学ぶとより短い労力でコードを書けるということは伝わったかと思う。いうことで、学習がんばりましょう。前回の記事ではPythonで筋トレ用メトロノームを作成した。前回の記事ではPythonでGUIを体験するプログラムを紹介した。Collectionを使って数値をランダムに並び替える今回はn個の数値をランダムに並び替えるアルゴリズム。はてなブログPro弓道と英語が趣味のVBAプログラマーです。大阪でシステム運用の仕事をしています。このブログに掲載しているコードは利用規約の範囲で自由にお使いください。VBAの無料入門教材を配布していますので、VBAを初めてみたい方、ぜひお立ち寄りください。Amazonアソシエイト・プログラムの参加者です。はてなブログをはじめよう!t-homさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。