题目: 寻找给小费最多的客人 (Python)
给定两个非空列表user_ids
和tips
,编写一个名为most_tips
的函数,用于找到给小费最多的客户。
示例:
输入:
user_ids = [103, 105, 105, 107, 106, 103, 102, 108, 107, 103, 102]
tips = [2, 5, 1, 0, 2, 1, 1, 0, 0, 2, 2]
输出:
def most_tips(user_ids,tips) -> 105
答案
解题思路
这个问题的目标是找到给小费最多的客户。我们可以使用一个字典来跟踪每个用户的小费总额,并找到小费最多的用户。
答案代码
def most_tips(user_ids, tips):
tip_dict = {} # 用于存储每个客户的小费总额
for i in range(len(user_ids)):
user_id = user_ids[i]
tip = tips[i]
# 更新用户的小费总额
tip_dict[user_id] = tip_dict.get(user_id, 0) + tip
# 找到小费最多的客户
max_tip_user = max(tip_dict, key=tip_dict.get)
return max_tip_user
user_ids = [103, 105, 105, 107, 106, 103, 102, 108, 107, 103, 102]
tips = [2, 5, 1, 0, 2, 1, 1, 0, 0, 2, 2]
print(most_tips(user_ids, tips))
tip_dict[user_id] = tip_dict.get(user_id, 0) + tip
: 更新客户的小费总额,如果客户不存在于字典中,则初始化其小费总额为0。max_tip_user = max(tip_dict, key=tip_dict.get)
: 使用max()
函数找到小费总额最大的客户。
更多详细答案可关注公众号查阅。