LEVEL 4 ・ データ / Lesson 08

辞書で、1行分のデータを持つ

名前・部署・売上など、1人分の情報を「見出し」と「中身」のセットで持ちます。

目安 12分 ・ インストール不要

このレッスンが終わったら

「辞書は、見出しと中身をセットにしたもの。Excelの1行分のイメージ」と言える。

STEP 1

できることを見る

Excelの表の「1行」を思い浮かべてください。

名前部署売上
田中営業1250000

この1行には、「名前」「部署」「売上」という見出しと、それぞれの中身がセットで入っています。Pythonでは、これをそのまま1つにまとめて持てます。

employee = {
    "name": "田中",
    "department": "営業",
    "sales": 1250000,
}
STEP 2

動かしてみる

1人分のデータを持つコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

見出しを指定すると、その中身が取り出せましたね。

STEP 3

1行ずつ読む

"name": "田中" を分解する
"name"見出し
:「は」のような区切り
"田中"中身
1行ずつ日本語にしてみる
employee = {これから1人分のデータをまとめて、「employee」という名前で覚える
"name": "田中",見出し「name」の中身は「田中」
"department": "営業",見出し「department」の中身は「営業」
print(employee["name"])employeeの、見出し「name」の中身を表示する

日本語にすると

見出しと中身をセットにして、1人分の情報をまとめて覚えておく。見出しを指定すると、中身を取り出せる。

リストは「何番目か」で取り出しましたが、辞書は見出しの名前で取り出します。

STEP 4

1か所だけ変える

① 中身を変える。 "営業" を "経理" に変えて、実行してみましょう。

中身を書き換えてみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

② 見出しを追加する。 まだ無い見出しに値を入れると、新しい見出しが増えます。

見出しを増やしてみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
③ 無い見出しを呼んでみる。
エラーも体験しておこうコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

KeyError: 'salary' と出ます。「salaryという見出しはありません」という意味です。見出しの綴りを見直せば直ります。実務では、よくある綴りの間違いのエラーです。

④ 辞書をリストにして、表にする。 1人分の辞書を、人数分リストに入れると、Excelの表そのものになります。

辞書のリスト=表コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
最後の2行を日本語にする
for row in employees:employeesの中身(1人分の辞書)を、1行ずつ取り出して「row」と呼ぶ
print(row["name"], "さんは", row["department"], "です")取り出した1行から、名前と部署を取り出して、文章にして表示する
STEP 5

自分で書く

お題① 田中さんの部署を表示してください。

お題①:部署を表示コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

見出しは「department」です。print(employee["department"]) と書きます。

答えの例を見る
employee = {"name": "田中", "department": "営業", "sales": 1250000}
print(employee["department"])

お題② 3人の名前を、1人ずつ表示してください。

お題②:全員の名前を表示コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

for row in employees: の中で、print(row["name"]) と書きます。

答えの例を見る
employees = [
  {"name": "田中", "sales": 1250000},
  {"name": "佐藤", "sales": 980000},
  {"name": "鈴木", "sales": 1100000},
]
for row in employees:
  print(row["name"])
STEP 6

仕事ならどう使う?