
この回でできるようになること
- 01タプルとリストの違いを説明する
- 02集合で重複を取り除く
- 03辞書のキーから対応する値を取り出す
組をそのまま保つタプル
タプルは ( ) で作ります。位置番号で読み取れますが、作った後に要素を直接入れ替えることはできません。

ROBORONの位置を (横, 縦) の組で持ちたいな。

いいね。座標のように『ひと組』として扱うと、意味が分かりやすいんだよ。

一時的に変えない組ならタプルが合いますね。
position = (4, 2)
print(position[0])
print(position[1])
なぜ? 0番目は横の4、1番目は縦の2。position[0] = 5 のような変更はできません。

『変更できない』のはタプルの要素の入れ替え。中にリストが入る場合、その内側まで変化しないわけではないよ。
重複をまとめる集合
set() は同じ値を1つにまとめます。集合には位置番号がなく、表示順も頼りにしません。

リンゴが2回記録されたら、種類の数だけ知りたいな。

集合なら重複をなくして考えられるよ。どの順番で表示されるかは決めつけないでね。

順番が必要なデータにはリストを残します。
fruit = ["リンゴ", "バナナ", "リンゴ"]
unique = set(fruit)
print(len(unique))
print("リンゴ" in unique)
なぜ? リンゴが2回あっても集合では1種類。要素数は2です。集合そのものの表示順には依存しません。

元の記録は消さず、必要に応じて別の集合を作ると安全だよ。
名前で探せる辞書
辞書は キー: 値 の組です。位置ではなくキーを指定して値を取り出します。

『リンゴの値段』をすぐ調べたい! 何番に書いたかは覚えられないよ。

それなら辞書なんだ。price['リンゴ'] という名前で探せるよ。

存在しないキーを調べるときは get() を使えば、代わりの値も決められます。
price = {"リンゴ": 120, "バナナ": 90}
print(price["リンゴ"])
print(price.get("みかん", "未登録"))
price["リンゴ"] = 130
print(price["リンゴ"])
なぜ? キー『リンゴ』に対応する値を読む。get() はないキーでも指定した代替値を返します。最後は値を130へ更新。

辞書のキーは重複できません。同じキーに新しい値を入れると前の値を更新します。
予想して、理由まで確かめよう
答えを選んだら、説明を読んでから実行欄でも試してみよう。
price = {"リンゴ": 120} のとき price.get("バナナ", 0) は?
答えを選ぶと理由が表示されます。

小さな練習:辞書の中身を全部見よう
{'リンゴ':120, 'バナナ':90} のキーと値を、for と items() で1組ずつ表示しよう。
ヒント:for name, price in prices.items(): の形です。
解き方の一例と理由を見る
prices = {"リンゴ": 120, "バナナ": 90}
for name, price in prices.items():
print(name, price)items() からキーと値の組を受け取り、それぞれ name、price に入れます。
どのデータ構造がよい?

リスト、タプル、集合、辞書。道具箱がいっぱいだね!

選ぶ目安は『何をしたいか』なんだよ。順番ならリスト、固定した組ならタプル、種類だけなら集合、名前から探すなら辞書。

最初に目的を一文で書いてから選ぶと、迷いにくそうです。
自分の手で動かそう
例題を選び、結果を予想してから「実行する」を押そう。値を変えると、どの行が結果を決めるか見えてくるよ。
書き換えて試せます。Tabキーは半角スペース4つ分です。
位置番号は0からです。
この入力欄の使い方
コード内の input() に渡す値を1行ずつ書きます。input() がない例では空欄で大丈夫です。複数回呼ぶコードでは上から順に使います。
準備できました。
実行結果
実行すると、ここに結果を表示します。
Pythonは閲覧中の端末内で動作します。

タプル・集合・辞書を使い分ける。 今日覚えた道具を、別の値でも試してみよう。自分で理由を説明できたら、とてもいい進歩なんだよ。