使用for循环比较当前值是否小于上一个值

2024-06-17 10:07:20 发布

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

背景:

我用了两本字典。就我而言,第一个governor_db是一个字典,其中包含一个州长的名字作为关键字,而值只是一组信息,比如他们服务的年份等等。第二个是一个字典,其中包含年份作为关键字,值是当年每个月的失业率(key)。在

我目前正在研究的内容:

我正在处理的函数调用以前的一个函数,该函数用于计算每名州长任职期间的平均失业率。我所拥有的(下面)是迭代州长的名字,并将平均失业率拉入这个新的函数中,以便能够比较最低的平均失业率是多少,以及州长是谁与这条信息进行比较。在

到目前为止,我所得到的要么重复一遍,准确地给我一个最低的失业率,但不会给出与最低失业率相匹配的合适的州长。在

我的当前代码:

def governor_lowest_avg_unemployment(g_db,unemployment_db):
    all_unemploy={}
    for  governor in g_db.keys():
        avg_unemploy= avg_unemployment_for_governor(g_db,unemployment_db, governor)
        if avg_unemploy==None:
            all_unemploy[governor]=0
        else: 
            all_unemploy[state]= avg_unemploy
    lowest_avg= min(all_unemploy.values())
    for key, value in all_unemploy.items():
        if value == lowest_avg:
            lowest_gov= key,value
    return(lowest_gov)

我想做的是,当我迭代字典和它对应的失业率值(存储在上面的dictionary all_unemploy中)时,我希望能够存储以前的值,并比较我正在迭代的新值是否小于前一个值。如果新值比前一个值小,我想用新值替换前一个值,然后继续一个,直到它停止遍历字典,并给我一个正确的元组组合:最低平均值:(州长,平均失业率)

我开始的想法是做如下的事情。但我不确定如何实施:

^{pr2}$

在这个例子中,没有一个仅仅意味着对于前一个函数,失业数据库中没有足够的信息来计算州长的平均失业率。在

我怎么能像这样比较这些值,最终得到一个准确的最低值呢?我实施这样一件事的想法是否正确?在


Tags: key函数信息fordb字典valueall
1条回答
网友
1楼 · 发布于 2024-06-17 10:07:20

如果我正确理解您要做的事情,以下代码应该对您有用:

def governor_lowest_avg_unemployment(g_db,unemployment_db):
    all_unemploy = {}
    lowest_avg = 1e99    # some huge number, obviously above max possible
    lowest_gov = None
    for  governor in g_db.keys():
        avg_unemploy = avg_unemployment_for_governor(g_db,unemployment_db, governor)
        if avg_unemploy==None:
            all_unemploy[governor]=0
        else: 
            all_unemploy[governor] = avg_unemploy
            if avg_unemploy < lowest_avg:
                lowest_avg = avg_unemploy
                lowest_gov = governor
    return lowest_gov

相关问题 更多 >