【问题标题】:How to return keys which are not in a list?如何返回不在列表中的键?
【发布时间】:2020-04-29 14:40:09
【问题描述】:

我有以下字典:

d = {'Z':1,'A':2,'C':3}

我想返回所有不在['A','B']中的键

我知道[k for k in d.keys() if 'A' not in k] 有效,但[k for k in d.keys() if ['A','B'] not in k] 无效,因为not in 需要字符串而不是列表。

【问题讨论】:

    标签: python string dictionary notin


    【解决方案1】:

    无需迭代,可以使用集差操作。

    >>> d = {'Z':1,'A':2,'C':3}
    >>> l = ['A','B']
    >>> set(d) - set(l)
    {'Z', 'C'}
    

    【讨论】:

    • d.keys() - set(l)
    【解决方案2】:

    这取决于您的要求:

    # Check for exact key match
    d = {'Z':1,'A':2,'C':3}
    [k for k in d.keys() if k not in ['A', 'B']]
    
    # Substring match
    d = {'Z':1,'A':2,'C':3}
    [k for k in d.keys() if not any(s in k for s in ['A', 'B'])]
    

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 2017-05-05
      • 1970-01-01
      • 2013-05-25
      • 2011-09-29
      • 1970-01-01
      • 2018-07-01
      相关资源
      最近更新 更多