筛选嵌套词典

2024-09-26 22:54:31 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有本字典:

Filme = {'1': {'Titel': 20, 'Jahr': 2, 'Wertung': 6, 'Preis': 50, 'Schauspielern': ['a', 'b', 'c']},
         '2': {'Titel': 30, 'Jahr': 3, 'Wertung': 7, 'Preis': 70, 'Schauspielern': ['']},
         '3': {'Titel': 10, 'Jahr': 2, 'Wertung': 6, 'Preis': 10, 'Schauspielern': ['']},
         '4': {'Titel': 5, 'Jahr': 3, 'Wertung': 9, 'Preis': 20, 'Schauspielern': ['']},
         '5': {'Titel': 8, 'Jahr': 3, 'Wertung': 10, 'Preis': 100, 'Schauspielern': ['']},
         '6': {'Titel': 20, 'Jahr': 2, 'Wertung': 6, 'Preis': 10, 'Schauspielern': ['']},
         '7': {'Titel': 16, 'Jahr': 3, 'Wertung': 9, 'Preis': 20, 'Schauspielern': ['']},
         '8': {'Titel': 20, 'Jahr': 2, 'Wertung': 6, 'Preis': 10, 'Schauspielern': ['']},
         '9': {'Titel': 90, 'Jahr': 3, 'Wertung': 9, 'Preis': 20, 'Schauspielern': ['']},
         '10': {'Titel': 10, 'Jahr': 2, 'Wertung': 6, 'Preis': 10, 'Schauspielern': ['']}
        }

我必须根据Wertung(评级)对其进行筛选,只显示我选择的评级为>=的电影。 问题是,我是Python编程的初学者,我不知道该怎么做。 所以如果Wertung == 7,我希望它打印这个

^{pr2}$

Tags: 字典电影编程初学者pr2titeljahrpreis
2条回答

字典的理解将是最直接的。在

>>> {i:j for i,j in Filme.items() if j['Wertung'] >=7}
{'7': {'Titel': 16, 'Wertung': 9, 'Preis': 20, 'Jahr': 3, 'Schauspielern': ['']}, '5': {'Titel': 8, 'Wertung': 10, 'Preis': 100, 'Jahr': 3, 'Schauspielern': ['']}, '4': {'Titel': 5, 'Wertung': 9, 'Preis': 20, 'Jahr': 3, 'Schauspielern': ['']}, '2': {'Titel': 30, 'Wertung': 7, 'Preis': 70, 'Jahr': 3, 'Schauspielern': ['']}, '9': {'Titel': 90, 'Wertung': 9, 'Preis': 20, 'Jahr': 3, 'Schauspielern': ['']}}

如果任何条目都可能缺少Wertung,则可以使用get()来防止代码意外失败。在

^{pr2}$

您只需在Filme.items()上使用字典理解:

In [2]: {k:v for k,v in Filme.items() if v['Wertung'] >= 7}
Out[2]:
{'2': {'Jahr': 3,
  'Preis': 70,
  'Schauspielern': [''],
  'Titel': 30,
  'Wertung': 7},
 '4': {'Jahr': 3,
  'Preis': 20,
  'Schauspielern': [''],
  'Titel': 5,
  'Wertung': 9},
 '5': {'Jahr': 3,
  'Preis': 100,
  'Schauspielern': [''],
  'Titel': 8,
  'Wertung': 10},
 '7': {'Jahr': 3,
  'Preis': 20,
  'Schauspielern': [''],
  'Titel': 16,
  'Wertung': 9},
 '9': {'Jahr': 3,
  'Preis': 20,
  'Schauspielern': [''],
  'Titel': 90,
  'Wertung': 9}}

这相当于:

^{pr2}$

相关问题 更多 >

    热门问题