字典列表中的第一个非空值

Skh*_*haz 1 python

假设我想获取此字典列表中的第一个key为空:

arr = [
    {
      "key": None,
      "anotherkey": 0
    },
    {
      "another": "ignore"
    },
    {
      "bool": True,
      "key": "this!"
    }
  ]
Run Code Online (Sandbox Code Playgroud)

有一些单行线可以做到这一点吗?我用 for 循环做到了。

Cor*_*mer 6

您可以循环遍历内部字典并检查 中key是否未None使用生成器表达式next

>>> next((d['key'] for d in arr if d.get('key') is not None), None)
'this!'
Run Code Online (Sandbox Code Playgroud)

这将返回与 关联的第一个值'key',否则None如果不存在此类键/值对。