如何打印列表中按指定字典键排序后的目标字段值
解决方法
你可以直接在排序后的结果取首个元素(升序排序首个就是water值最小的字典),再读取对应rent字段即可,代码修改如下:
#dictionaries dict0 = {'rent' : 5, 'water' : 2, 'lawncare' : 1} dict1 = {'rent' : 8, 'water' : 3, 'lawncare' : 4} dict2 = {'rent' : 6, 'water' : 4, 'lawncare' : 3} #dictionaries in a list list0 = [dict0, dict1, dict2] # 方法1:基于现有sorted逻辑修改 sorted_list = sorted(list0, key = lambda item: item['water']) # 取排序后第一个字典的rent字段 print(sorted_list[0]['rent'])
输出结果为:5
如果列表长度较大,不需要全量排序的话,可以用min函数直接找water值最小的字典,性能更好:
lowest_water_dict = min(list0, key = lambda item: item['water']) print(lowest_water_dict['rent'])
输出结果和上方一致。
补充说明:如果存在多个字典的
water值同为最小值的情况,以上两种方法都会返回列表中第一个出现的符合条件的字典,可根据实际需求调整排序或取值逻辑。
内容的提问来源于stack exchange,提问作者Proiectura
相关产品推荐
相关产品推荐

