Python如何比较forloop上的新值和以前的值?

2024-09-28 19:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的函数需要在字典中找到速度最快的字符。字符名是键,值是统计的元组。速度是值元组的索引6。如果当前的速度是最高的,如何比较?一旦我得到了速度,我如何获取该字符的类型(值元组中的索引1和索引2)并将它们作为列表返回?在

示例数据:

d={'spongebob':(1,'sponge','aquatic',4,5,6,70,6), 'patrick':(1,'star','fish',4,5,6,100,1)}

帕特里克的速度最高(100),他的类型是star和{}。应该回来[星星,鱼]

以下是我当前的代码,因为我不知道如何比较以前的代码和当前的代码:

^{pr2}$

Tags: 数据函数代码示例类型列表字典字符
2条回答

如果我明白你的意思。在

def fastest_type(db):
    speed = 0
    new = []
    for key,value in db.items():
       if speed < value[6]:
           speed = value[6]
           new = value[1:3]
    return list(new) # return list instead of tuple

sorted函数可以很容易地做到这一点:

代码:

from operator import itemgetter

def fastest_type(db):
    fastest = sorted(db.values(), reverse=True, key=itemgetter(6))[0]
    return fastest[1], fastest[2]

这段代码按键6按相反的顺序排序,以便最大的是第一个,然后将fastest设置为排序的第一个元素。然后它简单地从fastest返回两个所需的字段。在

测试代码:

^{pr2}$

结果:

('star', 'fish')

相关问题 更多 >