美文网首页
Python3 - 从字典中提取子集(推导式)

Python3 - 从字典中提取子集(推导式)

作者: 惑也 | 来源:发表于2018-12-16 22:19 被阅读22次

    问题

    你想构造一个字典,它是另外一个字典的子集。

    解决方案

    最简单的方式是使用字典推导。比如:

    prices = {
        'ACME': 45.23,
        'AAPL': 612.78,
        'IBM': 205.55,
        'HPQ': 37.20,
        'FB': 10.75
    }
    
    p1 = {key:value for key, value in prices.items() if value > 200}
    print(p1)
    {'AAPL': 612.78, 'IBM': 205.55}
    
    tech_names = {'IBM', 'FB'}
    p2 = {key:value for key, value in prices.items() if key in tech_names}
    print(p2)
    {'IBM': 205.55, 'FB': 10.75}
    

    大多数情况下字典推导能做到的,通过创建一个元组序列,然后把它传给 dict() 函数也能实现。比如:

    p1 = dict((key, value) for key, value in prices.items() if value > 200)
    print(p1)
    
    {'AAPL': 612.78, 'IBM': 205.55}
    

    但是,字典推导方式代码更清晰,并且实际上也会运行的更快些 (在这个例子中,实际测试几乎比 dict() 函数方式快整整一倍)。

    相关文章

      网友评论

          本文标题:Python3 - 从字典中提取子集(推导式)

          本文链接:https://www.haomeiwen.com/subject/qkhfkqtx.html