python - 从字典中删除特定值
问题描述
我正在研究与字典和列表相关的问题。
这是我的输入数据
{12: [33, 1231, (40, 41), (299, 304), (564, 569), (1139, 1143), (1226, 1228)],
17: [9, 1492, (30, 43), (1369, 1369)],
20: [9, 1492, (30, 45), (295, 310), (561, 573), (927, 929), (1133, 1148), (1222, 1236), (1354, 1356), (1368, 1369)],
26: [34, 1364],
27: [300, 1360, (918, 922)],
36: [34, 1364]}
我的目标是删除值列表中仅包含整数数据类型的键值对。(在这个输入数据中,我想去掉 26: [34, 1364] 和 36: [34, 1364] 等数据)。
所以,我的输出看起来像这样
{12: [33, 1231, (40, 41), (299, 304), (564, 569), (1139, 1143), (1226, 1228)],
17: [9, 1492, (30, 43), (1369, 1369)],
20: [9, 1492, (30, 45), (295, 310), (561, 573), (927, 929), (1133, 1148), (1222, 1236), (1354, 1356), (1368, 1369)],
27: [300, 1360, (918, 922)]}
解决这个问题最有效的方法是什么。
解决方案
使用all
:
data = {k: v for k, v in data.items() if not all(isinstance(x, int) for x in v)}
map
使用dunder 方法,您可能会更加幻想:
data = {k: v for k, v in data.items() if not all(map(int.__instancecheck__, v))}
推荐阅读
- windows - Windows 批处理如果不等于不执行 if 子句
- amazon-web-services - 具有通配符文件路径的 Cloudwatch 代理 InvalidParameterException
- python - 如何在 Python XMLRPC 服务器中使用 gzip 压缩
- c++ - QT VsAddIn 错误对象引用未设置为对象的实例
- javascript - 为什么带有特殊字符的字符串在 GET 和 POST 方法中的行为不同?
- c++ - *char 数组到字符串(两次运行代码和两个不同的结果)
- sapui5 - 如何使用 sapui5 sap.ui.table.Table 和大量数据进行大规模更改?
- javascript - JavaScript:未捕获的 SyntaxError:意外的字符串错误 jQuery
- mysql - 插入多个具有 select 语句的数据,并且该 select 语句的 FROM 表与我要插入的表相同
- python - 如何将数组列表转换为一个列表?