python - 从列表中删除字典
问题描述
我有以下列表:
b = [{'codename': 'add_group', 'id': 5, 'content_type': 2, 'name': 'Can add group'},
{'codename': 'change_group', 'id': 6, 'content_type': 2, 'name': 'Can change group'},
{'codename': 'delete_group', 'id': 7, 'content_type': 2, 'name': 'Can delete group'},
{'codename': 'view_group', 'id': 8, 'content_type': 2, 'name': 'Can view group'},
{'codename': 'add_templateresource', 'id': 21, 'content_type': 6, 'name': 'Can add template resource'},
{'codename': 'change_templateresource', 'id': 22, 'content_type': 6, 'name': 'Can change template resource'},
{'codename': 'delete_templateresource', 'id': 23, 'content_type': 6, 'name': 'Can delete template resource'},
{'codename': 'view_templateresource', 'id': 24, 'content_type': 6, 'name': 'Can view template resource'},
{'codename': 'add_usermodel', 'id': 13, 'content_type': 4, 'name': 'Can add user'},
{'codename': 'change_usermodel', 'id': 14, 'content_type': 4, 'name': 'Can change user'},
{'codename': 'delete_usermodel', 'id': 15, 'content_type': 4, 'name': 'Can delete user'},
{'codename': 'view_usermodel', 'id': 16, 'content_type': 4, 'name': 'Can view user'}]
现在我想删除其值包含代号键中的_templateresource子字符串的字典
解决方案
我认为最简单的方法是使用列表理解过滤掉这些条目:
result = [i for i in b if not i['codename'].endswith('_templateresource')]
推荐阅读
- r - 离散化连续变量保持零
- vuejs2 - Vue 在更新时根据 Vuex 状态属性计算
- postgresql - Postgres横向松散-至少1个值?
- css - 如果我为某些元素写了特定的 CSS,默认 CSS 总是生效
- google-cloud-firestore - FirebaseError:: 我们无法注册默认服务工作者
- python - 如何将我自己的 python/kivy 代码从 python 转换为 apk
- reactjs - Google Auth FLOW,在同一客户端/系统上维护多个(应用程序用户)登录
- excel - 多标准索引匹配不起作用
- angular - Angular Unit Testing - 如何从注入的服务触发另一个发射?
- python - Python Statsmodels Mixedlm(随机斜率+截距)结果图