タートルグラフィックスで辞書でカメを動かしてみよう

パイソンにはリストやタプルの他にも一つの変数内で値を持つことができるデータ構造があり、辞書と呼ばれています。


辞書の特徴はキーと値のペア (Key-Value Pairs)で値を持つことがあります。

キーと値のペアは下記の様に作成して使用します。

my_dic = {"x": 50, "y": 100}
print(my_dic)
print(my_dic["x"])
print(my_dic["y"])

先に実行結果を見てみますと、

{'x': 50, 'y': 100}
50
100

になります。


辞書のデータ構造の作成方法は

変数 = {key1:値, key2:値...}

※...にはkey3,key4と続きます。

になり、各値の取り出し方は

変数[key]

になります。


my_dic = {"x": 50, "y": 100}
my_dic["x"] = 150
print(my_dic)
{'x': 50, 'y': 100}

値の更新も可能です。




辞書を使って、カメの動きに関するコードの可読性を上げてみます。

タートルグラフィックスでリストやタプルでカメを動かしてみようで使用しましたgotoは

goto(x, y)

のようにx軸とy軸を直接指定することも可能です。


この機能を活用するように下記のようにコードを作成します。

from turtle import *

shape("turtle")

point = {"x": 100, "y": 100}
goto(point["x"], point["y"])
done()


追記

キー無しでデータをまとめた場合は集合型と呼びます。

集合型は一見リスト型と同じように見えますが、値の並び順が関係ないという利点があります。


上記説明の例として、

# 集合型
s1 = {0, 1, 2}
s2 = {1, 0, 2}
print(s1 == s2)

# リスト型
l1 = [0, 1, 2]
l2 = [1, 0, 2]
print(l1 == l2)

のコードを実行してみます。


どちらもデータの値は同じで並び順が違うだけです。

実行結果は

True
False

で集合型は並び順が違うデータでも同一だと判断し、リスト型の時は異なると判断しています。

同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。