如何修改Python函数使其从字典返回最高值对应的键值元组?
调整Python函数返回格式为(name, oscars)元组
嘿,我来帮你搞定这个返回格式的问题~你的原函数现在只能返回拿最多奥斯卡的演员名字,要改成返回('Meryl Streep', 20)这种(名字,奥斯卡数)的元组,其实只需要小改一下就行。
两种修改方案供你选:
方案1:基于你原有的思路修改
完全贴合你原来的写法,只需要在返回的时候把名字和对应的最大值打包成元组:
def most_oscars(d): v = list(d.values()) k = list(d.keys()) max_val = max(v) return (k[v.index(max_val)], max_val)
方案2:更直观的遍历写法
这种写法可读性更强,直接遍历字典的键值对找最大值对应的项:
def most_oscars(d): max_oscars = max(d.values()) for name, count in d.items(): if count == max_oscars: return (name, count)
原理说明:
原代码里你已经通过k[v.index(max(v))]找到了对应最多奥斯卡的演员名字,但只返回了这个名字。现在只需要把最大值max(v)(或者方案2里的max_oscars)也一起放进元组,就能得到你想要的格式啦。
小提醒:如果字典里有多个演员拿了相同数量的最多奥斯卡,上面两种写法都会返回第一个出现的那个。如果需要返回所有并列第一的演员列表,可以再调整~
内容的提问来源于stack exchange,提问作者user9660128
相关产品推荐
相关产品推荐

