如何找出列表中的最大值?以字典列表bid值查找及获胜者输出为例
找出字典列表中bid最大值的方法
方法一:直接用max()函数(推荐)
利用Python内置的max()函数,通过key参数指定以每个字典的bid值作为比较依据,直接获取bid最大的字典项,再提取对应的name和bid即可:
my_list = [ {'name': 'Angela', 'bid': 130}, {'name': 'James', 'bid': 145}, {'name': 'Jane', 'bid': 115} ] # 获取bid最大的字典 winner = max(my_list, key=lambda item: item['bid']) # 输出获胜者信息 print(f"The Winner is {winner['name']} with a bid of {winner['bid']}")
运行结果:
The Winner is James with a bid of 145
方法二:先找最大值再筛选(适用于多胜者场景)
如果存在多个用户的bid值同为最大值,这种方法可以找出所有获胜者:
my_list = [ {'name': 'Angela', 'bid': 130}, {'name': 'James', 'bid': 145}, {'name': 'Jane', 'bid': 115}, {'name': 'Mike', 'bid': 145} ] # 先计算最大的bid值 max_bid = max(item['bid'] for item in my_list) # 筛选出所有bid等于最大值的用户 winners = [item for item in my_list if item['bid'] == max_bid] # 逐个输出获胜者 for winner in winners: print(f"The Winner is {winner['name']} with a bid of {winner['bid']}")
运行结果:
The Winner is James with a bid of 145
The Winner is Mike with a bid of 145
内容的提问来源于stack exchange,提问作者Peyman Javidan
相关产品推荐
相关产品推荐

