在字典中循环

2024-04-20 00:44:00 发布

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

我被这段代码的最后一部分困住了,需要帮助。你知道吗

这是我的任务

我需要帮助的部分是for/if语句,它只比较年龄并返回最小值。我知道我想遍历所有年龄段,只返回使用if>;than或<;than符号的最低值,但不知道如何在编码中使用它。你知道吗


Tags: 代码ltgt编码forif符号语句
3条回答

要遍历字典的键和值,可以使用.items()

for president, data in p_db.items():
    ...

您甚至可以像这样自动展开值元组:

for president, (year, term, age, state, party) in p_db.items():
    ...

您只需要存储两个值,最小年龄和具有相同最小年龄的所有总统的列表。您可以通过p_db进行一次迭代来实现这一点

def func(p_db):
    min_age = None
    presidents = []

    for president, (year, term, age, state, party) in p_db.items():
        if min_age is None or age < min_age:
            min_age = age
            presidents = [president]
        elif age == min_age:
            presidents.append(president)

    presidents.sort()
    return (min_age, presidents)

像这样的事情似乎起了作用。你知道吗

def youngest_at_inauguration(db):
    youngest = min((db[p][2] for p in db))
    return youngest, [key for key in db if db[key][2] == youngest]

您可以通过单步遍历字典并保存键值(如果键值是目前为止看到的最小值)来实现这一点,如果您希望其他人稍后阅读您的代码,这可能会更加明确。这种方法更多的是对在最小空间内完成复杂任务的Pythonic方法的测试。你知道吗

使用^{}函数的key参数告诉它在比较元素时应该使用什么。你知道吗

相关问题 更多 >