Python演習問題＿0【　リストとディクショナリ練習問題①　】_解答

# Python #
## リストとディクショナリ ##
```
【問題１：買い物】
あなたは、果物屋さんで買い物をしています。果物屋さんは、リンゴ、バナナ、イチゴ、キウイ、メロン、パイナップルの6種類の果物を売っています。あなたは、以下のようなリストで、買いたい果物のリストを作成しました。

buy_list = ["りんご", "イチゴ", "パイナップル"]
果物屋さんが持っている果物と、その値段は以下のディクショナリで与えられています。

fruits = {"りんご": 100, "バナナ": 80, "イチゴ": 200, "キウイ": 150, "メロン": 500, "パイナップル": 400}
あなたは、買いたい果物のリスト(buy_list)を使って、買い物の合計金額を計算しようとしています。果物屋さんが持っている果物のうち、買いたい果物のみを購入する場合の合計金額を計算してください。
```
```
【解答例】
buy_list = ["りんご", "イチゴ", "パイナップル"]

fruits = {"りんご": 100, "バナナ": 80, "イチゴ": 200, "キウイ": 150, "メロン": 500, "パイナップル": 400}

total_price = 0

for fruit in buy_list:
    if fruit in fruits:
        total_price += fruits[fruit]

print("買い物の合計金額は", total_price, "円です。")
```
##  ##
```
【問題2:ピザを注文】
あなたは、友達と一緒にピザを食べることになりました。あなたたちは、以下のようなリストで、注文したいピザの種類を決めました。

order_list = ["マルゲリータ", "マリナーラ", "クワトロフォルマッジ"]
ピザ屋さんが持っているピザと、その値段は以下のディクショナリで与えられています。

pizza = {"マルゲリータ": 1000, "マリナーラ": 1200, "カプリチョーザ": 1400, "クワトロフォルマッジ": 1600}
あなたたちは、注文したいピザのリスト(order_list)を使って、注文の合計金額を計算しようとしています。ピザ屋さんが持っているピザのうち、注文したいピザのみを購入する場合の合計金額を計算してください。
```
```
【解答例】
order_list = ["マルゲリータ", "マリナーラ", "クワトロフォルマッジ"]

pizza = {"マルゲリータ": 1000, "マリナーラ": 1200, "カプリチョーザ": 1400, "クワトロフォルマッジ": 1600}

total_price = 0

for order in order_list:
    if order in pizza:
        total_price += pizza[order]

print("注文の合計金額は", total_price, "円です。")
```
##  ##
```
【問題3：ショッピング】
あなたは、ショッピングリストを作成しようとしています。以下のようなリストを作成しました。

shopping_list = ["りんご", "バナナ", "チーズ", "ヨーグルト"]
あなたは、各商品の数量も記録したいと思い、以下のような辞書を作成しました。

quantity = {"りんご": 5, "バナナ": 3, "チーズ": 2, "ヨーグルト": 1}
あなたは、各商品の合計数量を計算しようとしています。リスト(shopping_list)と辞書(quantity)を使って、各商品の合計数量を計算してください。
```
```
【解答例】
shopping_list = ["りんご", "バナナ", "チーズ", "ヨーグルト"]

quantity = {"りんご": 5, "バナナ": 3, "チーズ": 2, "ヨーグルト": 1}

total_quantity = 0

for item in shopping_list:
    if item in quantity:
        total_quantity += quantity[item]

print("各商品の合計数量は", total_quantity, "個です。")
```
##  ##
```
【問題4：先生気分】 
あなたは、ある学校の成績処理をすることになりました。学校には、以下のような成績表があります。

grades = [   
 {"name": "Alice", "math": 80, "english": 75, "science": 90},   
 {"name": "Bob", "math": 90, "english": 85, "science": 95},   
 {"name": "Charlie", "math": 70, "english": 65, "science": 80},   
 {"name": "David", "math": 60, "english": 55, "science": 70}
]

上記の成績表では、各生徒の名前(name)と、数学(math)、英語(english)、理科(science)の点数が記録されています。あなたは、以下の機能を実装することになりました。

条件1：各科目の平均点を計算する。
条件2：各生徒の平均点を計算する。
条件3：全科目の平均点を計算する。
以上の機能を実現するために、Pythonで必要な処理を行ってください。
```
```
【解答例】
grades = [
    {"name": "Alice", "math": 80, "english": 75, "science": 90},
    {"name": "Bob", "math": 90, "english": 85, "science": 95},
    {"name": "Charlie", "math": 70, "english": 65, "science": 80},
    {"name": "David", "math": 60, "english": 55, "science": 70}
]

# 各科目の平均点を計算する
math_scores = []
english_scores = []
science_scores = []

for grade in grades:
    math_scores.append(grade["math"])
    english_scores.append(grade["english"])
    science_scores.append(grade["science"])

avg_math = sum(math_scores) / len(math_scores)
avg_english = sum(english_scores) / len(english_scores)
avg_science = sum(science_scores) / len(science_scores)

print("数学の平均点は", avg_math, "点です。")
print("英語の平均点は", avg_english, "点です。")
print("理科の平均点は", avg_science, "点です。")

# 各生徒の平均点を計算する
for grade in grades:
    name = grade["name"]
    math = grade["math"]
    english = grade["english"]
    science = grade["science"]
    avg_score = (math + english + science) / 3
    print(name, "の平均点は", avg_score, "点です。")

# 全科目の平均点を計算する
all_scores = []
for grade in grades:
    all_scores.append(grade["math"])
    all_scores.append(grade["english"])
    all_scores.append(grade["science"])

avg_all = sum(all_scores) / len(all_scores)
print("全科目の平均点は", avg_all, "
```
##  ##
```
[問題5：スポーツクラブ] 
あなたは、スポーツクラブのマネージャーです。クラブには、以下のようなメンバーリストがあります。

members = [   
 {"name": "Alice", "age": 20, "gender": "female", "sports": ["basketball", "tennis"]},
 {"name": "Bob", "age": 25, "gender": "male", "sports": ["baseball", "soccer", "volleyball"]},
 {"name": "Charlie", "age": 30, "gender": "male", "sports": ["tennis", "golf"]},
 {"name": "David", "age": 35, "gender": "male", "sports": ["swimming"]}
]

上記のメンバーリストでは、各メンバーの名前(name)、年齢(age)、性別(gender)、スポーツ(sports)が記録されています。あなたは、以下の機能を実装することになりました。

条件1：バスケットボールをする人のリストを作成する。
条件2：男性のリストを作成する。
条件3：年齢が30以上の人のリストを作成する。
条件4：ゴルフをする女性がいるかどうかを確認する。
以上の機能を実現するために、Pythonで必要な処理を行ってください。
```
```
【解答例】
members = [
    {"name": "Alice", "age": 20, "gender": "female", "sports": ["basketball", "tennis"]},
    {"name": "Bob", "age": 25, "gender": "male", "sports": ["baseball", "soccer", "volleyball"]},
    {"name": "Charlie", "age": 30, "gender": "male", "sports": ["tennis", "golf"]},
    {"name": "David", "age": 35, "gender": "male", "sports": ["swimming"]}
]

# バスケットボールをする人のリストを作成する
basketball_players = []
for member in members:
    if "basketball" in member["sports"]:
        basketball_players.append(member["name"])

print("バスケットボールをする人のリスト:", basketball_players)

# 男性のリストを作成する
male_members = []
for member in members:
    if member["gender"] == "male":
        male_members.append(member["name"])

print("男性のリスト:", male_members)

# 年齢が30以上の人のリストを作成する
older_members = []
for member in members:
    if member["age"] >= 30:
        older_members.append(member["name"])

print("年齢が30以上の人のリスト:", older_members)

# ゴルフをする女性がいるかどうかを確認する
has_female_golf_player = False
for member in members:
    if "golf" in member["sports"] and member["gender"] == "female":
        has_female_golf_player = True
```