6. 集合型と辞書型

6-1. 集合型
 Pythonでは、波括弧{ }で囲んだコンマ区切りの要素の並び(例えば、{1, 2, 3, 4, 5}、{"a", "b", "c", "d", "e"}など)を集合型(集合)として取り扱います。集合の型はset型になります.なお、集合は重複を持たない、要素の集まり(数値の場合は昇順にソートされ、文字列の場合はソートされない)である点に注意してください。

▽サンプルプログラム6-1. 集合とset型

a={5, 2, 4, 1, 3, 2, 3}
print(a)
print(type(a))
b={"5", "2", "4", "1", "3", "2", "3"}
print(b)
▼プログラミングセル6-1. packages = [] terminal = false

6-2. 演算子による集合の操作
 集合では、和、積、差、対象差といった数学的な演算が可能です。

演算子メソッド関数機能
|.union(x)
&.intersection(x)
-.difference(x)
^.symmetric_difference(x)対称差

▽サンプルプログラム6-2. 演算子による集合の操作

a={0, 1, 2, 3}
b={2, 3, 4, 5}
print(a|b)
print(a.union(b))
a={0, 1, 2, 3}
b={2, 3, 4, 5}
print(a&b)
print(a.intersection(b))
a={0, 1, 2, 3}
b={2, 3, 4, 5}
print(a-b)
print(a.difference(b))
a={0, 1, 2, 3}
b={2, 3, 4, 5}
print(a^b)
print(a.symmetric_difference(b))
▼プログラミングセル6-2.

6-3. 辞書型
 Pythonでは、波括弧{ }で囲んだコンマ区切りのキーと値の2つを1組とした要素の並び(例えば、{"a":1, "b":2, "c":3}, {1:"a", 2:("b", "c"), ("d", "e"):3}など)を辞書型(辞書)として取り扱います。辞書の型はdict型になります.なお、辞書のキーには、文字列や数値、タプルなどの不変データが指定できます。逆に、リストや辞書などの可変データはキーに指定できません。値については、可変や不変に関わらず色々な種類のデータを指定できます。

▽サンプルプログラム6-3. 辞書とdict型

a={"a":1, "b":2, "c":3}
print(a)
print(type(a))
b={1:"a", 2:("b", "c"), ("d", "e"):3}
print(b)
▼プログラミングセル6-3.

6-4. キーによる辞書の値の取得
 辞書ではキー([キー名称]という添字)を使って辞書の値を取得することができます。

▽サンプルプログラム6-4. キーよる辞書の値の取得

a={"a":1, "b":2, "c":3}
print(a["a"])
a={1:"a", 2:("b", "c"), ("d", "e"):3}
print(a[2])
print(a[("d","e")])
a={"a":1, "b":2, "c":3}
print(a[0]) #エラー
▼プログラミングセル6-4.

6-5. 辞書の可変性
 辞書の値は変更することができます。キーを指定して値を代入できます。またdel関数でキーと要素のペアを削除できます。辞書にないキーを指定して値を代入すると、そのキーと値のペアを新しく辞書に追加することができます。

▽サンプルプログラム6-5. 辞書の可変性

a={"a":1, "b":2, "c":3}
print(a)
a["a"]=4 #キー"a"の値を4に変更
print(a)
del(a["b"]) #キー"b"のキーと値を削除
print(a)
a["d"]=5 #新しいペア(キー"d"、値5)を辞書に追加
print(a)
▼プログラミングセル6-5.

問題
 以下の問題に解答しましょう。

  1. タプルaに1, 2, 3, 6, 7の数値を格納し、タプルbに1, 3, 4, 5, 6の数値を格納します。aとbに対して以下を求めるプログラムを記述してください。
    1. aとbの和
    2. aとbの積
    3. aとbの差
    ▼プログラミングセル
  2. aとbの対称差の解答を記述してください。
  3. 以下のkeyとvalueの3つのデータを辞書cに格納するプログラムを記述してください
  4. keyvalue
    山田90
    田中85
    鈴木100
    ▼プログラミングセル
  5. cに対して、以下を実施したときの結果を記述してください。
    1. print(c["田中"])
    2. print(c["山田":"鈴木"])
    3. c["田中"]=95
    ▼プログラミングセル
  6. 以下の3つのデータを辞書dに格納するプログラムを記述してください
  7. keyidnamescore
    データ11001山田90
    データ21002田中85
    データ31003鈴木100
    ▼プログラミングセル