Python - 如何从字典列表中获取值为零的所有键?

Python - How to get all keys where values are zero from list of dictionaries?

我有如下所示的词典列表:

    planets = [
  { "name": "Mercury", "moonCount": 0 },
  { "name": "Venus", "moonCount": 0 },
  { "name": "Earth", "moonCount": 1 },
  {
    "name": "Mars",
    "moonCount": 2
  },
  {
    "name": "Jupiter",
    "moonCount": 67
  },
  {
    "name": "Saturn",
    "moonCount": 62
  },
  {
    "name": "Uranus",
    "moonCount": 27
  },
  {
    "name": "Neptune",
    "moonCount": 13
  },
  {
    "name": "Pluto",
    "moonCount": 4
  }
]

我正在尝试获取所有没有卫星的行星的列表。 如果把它变成熊猫数据框,我可以非常简单地做到这一点:

import pandas as pd
df = pd.json_normalize(planets)
no_moon_planets = df.loc[df['moonCount']==0, 'name']
no_moon_planets = no_moon_planets.tolist()
no_moon_planets

但我需要在不创建熊猫数据框的情况下执行此操作。所以基本上是在寻找解决方案,我可以直接从字典列表中提取行星列表,其中卫星数量为零。

感谢任何帮助。

你可以简单地用列表理解来做到这一点:

zero_moon = [dic for dic in planets if dic["moonCount"]==0]

如果您只想要行星的名称:

zero_moon = [dic["name"] for dic in planets if dic["moonCount"]==0]

执行以下操作:

Planets_without_moon = [i['name'] for i in planets if i['moonCount']==0]