字典案例

szmtjs10發表於2024-04-01

# 案例1: # 假設,已知小明、小紅、小亮三人的語文、數學、英語三科成績,將姓名、學科、成績做對應,並計算誰的總分最高

利用Lambda表示式實現排序功能。 有以下水果價格字典,使用lam

price ={'桃子': 5, '香蕉': 4, '葡萄': 6, '草莓': 7}
#列印今日售賣水果的種類和價格
print("--------今日水果價格--------")
for fruit in price:
    print(fruit, price[fruit]) #字典值的訪問 字典名[鍵]
print(" ")
n = int(input("請輸入你要購買的水果的種類:"))
sum_price = 0
#for迴圈遍歷求出購買的總金額
for i in range(1, n+1):  #for迴圈區間左閉右開
    fruit = input("請輸入你要購買的水果的名稱:")
    num = int(input("請輸入你要購買的水果數量:"))
    # 判斷購買的水果是否有
    if fruit in price:
        sum_price += price[fruit] * num  #求金額
    print(f"您購買水果的總金額為:{sum_price}元")

bda表示式,按價格從高到低對字典排序,並輸出排序結果。 {'apple': 12.6, 'grape': 21.0, 'orange': 8.8, 'banana': 10.8, 'pear': 6.5}

fruits = {'apple': 12.6, 'grape': 21.0, 'orange': 8.8, 'banana': 10.8, 'pear': 6.5}

sorted_fruits = sorted(fruits.items(), key=lambda x: x[1], reverse=True)

for fruit in sorted_fruits:
    print(fruit[0], fruit[1])

這裡使用了 sorted 函式來對字典進行排序,key 引數指定了排序的依據,這裡使用了 lambda 表示式來指定以字典的值作為排序依據。reverse=True 表示按從大到小排序。最後遍歷排序後的元組列表,輸出水果名稱和價格。

# 案例2: # 假設,已知小明、小紅、小亮三人的語文、數學、英語三科成績,將姓名、學科、成績做對應,並計算誰的總分最高

# 建立一個字典,其中包含每個學生的姓名和各科成績
students = {
    "小明": {"": 85, "": 96, "": 88},
    "小紅": {"": 72, "": 80, "": 91},
    "小亮": {"": 83, "": 69, "": 75},
}

# 初始化用於儲存姓名和總分的變數,

highest_scorer = ""  # 用字串表示總分最高的考生姓名
highest_score = 0  # 用數字表示總分

# 遍歷字典,計算每個學生的總分
for name, scores in students.items():
    total_score = sum(scores.values())
    print(f"{name}的總分是:{total_score}")

    # 更新總分最高的學生資訊
    if total_score > highest_score:
        highest_score = total_score
        highest_scorer = name

# 輸出總分最高的學生資訊
print(f"{highest_scorer}的總分最高,為{highest_score}分。")

相關文章