# 案例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}分。")