You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何从字典列表提取指定键的对应值?

实现从字典列表中提取指定键的取值列表

我需要编写一个函数,接收字典列表作为输入,返回列表中所有字典指定键对应的取值列表。示例调用是 titles = getKeys([book1, book2, book3])。目前我已经创建了3个字典并组成列表传入函数,知道要用for循环遍历列表,但不清楚具体实现逻辑——当前函数只能打印指定键(比如"Price")的值,现有代码如下:

book1 = {
        "Title": "ShowYourWork",
        "Price": 2.99,
        "Edition": "5th",
        "in_stock": False
        }
book2 = {
        "Title": "HowToNotDieALone",
        "Price": 10.00,
        "Edition": "2nd",
        "in_stock": True
        }
book3 = {
        "Title": "TheSecondBrain",
        "Price": 9.99,
        "Edition": "8th",
        "in_stock": False
        }

books = [book1, book2, book3]
    
def getKeys(books):
    for book in books:
        print(f"{book['Price']}")  

要实现返回指定键的取值列表,需要做这几个调整:

  • 给函数增加一个key参数,让它可以灵活指定要提取的键(比如"Title"或"Price")
  • 初始化一个空列表,用来存储遍历过程中收集到的取值
  • 遍历每个字典时,将对应键的值添加到列表中,最后返回这个列表

修改后的完整代码

book1 = {
    "Title": "ShowYourWork",
    "Price": 2.99,
    "Edition": "5th",
    "in_stock": False
}
book2 = {
    "Title": "HowToNotDieALone",
    "Price": 10.00,
    "Edition": "2nd",
    "in_stock": True
}
book3 = {
    "Title": "TheSecondBrain",
    "Price": 9.99,
    "Edition": "8th",
    "in_stock": False
}

books = [book1, book2, book3]

def getKeys(books, key):
    result = []
    for book in books:
        # 可选:如果担心部分字典没有目标键,可加判断避免报错
        # if key in book:
        #     result.append(book[key])
        result.append(book[key])
    return result

# 示例调用:提取所有书名
titles = getKeys(books, "Title")
print(titles)  # 输出: ['ShowYourWork', 'HowToNotDieALone', 'TheSecondBrain']

# 提取所有价格
prices = getKeys(books, "Price")
print(prices)  # 输出: [2.99, 10.0, 9.99]

更简洁的列表推导式版本

如果不需要额外的错误判断,还可以用Python的列表推导式简化函数:

def getKeys(books, key):
    return [book[key] for book in books]

内容的提问来源于stack exchange,提问作者Ahmed ElAbbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:45:38