首页 > 解决方案 > 从嵌套字典中删除键和值?

问题描述

我有一个这样的嵌套字典:

book={20:{'start':'2008','reason':'sold'},
      21:{'start':'2009','reason':'returned'},
      22:{'start':'2010','reason':'returned'}}

我想删除 'reason'== 'sold' 的项目。

输出应该是这样的:

book={21:{'start':'2009','reason':'returned'},
      22:{'start':'2010','reason':'returned'}}

这是我的代码不起作用:

for k, v in book:
   if v == 'sold':
       del book[k] 

标签: pythondictionarynested

解决方案


您可以使用字典理解:

book={20:{'start':'2008','reason':'sold'},
  21:{'start':'2009','reason':'returned'},
  22:{'start':'2010','reason':'returned'}}
new_book = {a:b for a, b in book.items() if b['reason'] != 'sold'}

输出:

{21: {'start': '2009', 'reason': 'returned'}, 22: {'start': '2010', 'reason': 'returned'}}

推荐阅读