当前位置: 首页 > 面试题库 >

Python-筛选字典仅包含某些键?

宇文和昶
2023-03-14
问题内容

我有一个dict包含大量条目的条目。我只对其中几个感兴趣。有没有一种简单的方法可以将其他所有元素都修剪掉?


问题答案:

构建一个新的字典:

dict_you_want = { your_key: old_dict[your_key] for your_key in your_keys }

使用字典理解。

如果使用缺少它们的版本(例如,Python 2.6和更早版本),请使其成为dict((your_key, old_dict[your_key]) for ...)。一样,尽管丑陋。

请注意,这与jnnnnn的版本不同,对于old_dict任何大小的,都具有稳定的性能(仅取决于your_keys的数量)。在速度和内存方面。由于这是一个生成器表达式,因此它一次只能处理一项,并且不会浏览old_dict的所有项。

就地删除所有内容:

unwanted = set(keys) - set(your_dict)
for unwanted_key in unwanted: del your_dict[unwanted_key]


 类似资料:
  • 问题内容: 我有一本包含键值对的字典。我的值包含字符串。如何搜索字典中是否存在特定字符串并返回与包含该值的键相对应的键。 假设我要搜索字典值中是否存在字符串“ Mary”,并获取包含它的键。这是我尝试过的方法,但显然不能那样工作。 有没有更好的方法来执行此操作,因为我可能要查找存储的值的子字符串(“ Mary”是值“ Mary-Ann”的子字符串)。 问题答案: 您可以这样做:

  • 问题内容: 在Python中,如何检查字符串是否仅包含某些字符? 我需要检查仅包含a..z,0..9和的字符串。(句号),没有其他字符。 我可以遍历每个字符并检查字符是a..z还是0..9或。但这会很慢。 我现在不清楚如何使用正则表达式进行操作。 这个对吗?您可以提出更简单的正则表达式还是更有效的方法? 问题答案: 决赛(?) 答案,包装在函数中,带有注释的交互式会话: 注意:在此答案中还有一个比

  • 问题内容: 我试图迅速过滤字典: 上面的过滤器代码在swift 2下编译,但产生以下错误: 无法将类型[[(String,String)]’的值分配给类型’[String:String]’的值 这是swift编译器中的错误,还是不是快速过滤字典的正确方法? 提前非常感谢您! 问题答案: 此问题已在Swift 4中修复 在Swift 4中,过滤后的字典返回字典。 Swift 2和3的原始答案 问题是

  • 我有一个形式的字典: 我想过滤列表,以删除索引中的每一项,其中索引中的不是 输出应如下所示: 因为的第一个值不是 我试过这样的方法: 但这只适用于一把钥匙。 回复:下面有很多好的解决方案。我只是在想另一个。 将这个列表结构转换成一个元组列表: 然后我只需要通过每个元组的第二个项目来过滤这个列表,这很容易:

  • 我有一个包含多个国家的数据集。如何对其进行筛选,使其仅包含特定国家/地区? 例如,现在它包含英国、比利时、法国等 我想过滤它,使它只显示法国和比利时。 到目前为止,我已经尝试过: 它是有效的,因为它只过滤法国的数据,但如果我加上比利时 它不再工作了。我得到以下错误: 我们将非常感谢您的帮助。

  • 问题内容: 我正在尝试从文本文件中读取文本,读取行,删除包含特定字符串的行(在这种情况下为“坏”和“顽皮”)。我写的代码是这样的: 我这样写,但没有成功。 重要的一件事是,如果文本的内容是这样的: 我不希望输出有空行。所以不喜欢: 但是像这样: 我应该从上面的代码中编辑什么? 问题答案: 您可以像这样使代码更简单,更易读 使用上下文管理器和任何。