繁体   English   中英

没有用于Python 3字典的has_key()方法

[英]No has_key() method for Python 3 dictionaries

我读了“Python Cookbook”,看看在“寻找两个字典的交集”的作品中,作者建议使用这样的单行:

filter(another_dict.has_key, some_dict.keys())

但是由于Python 3字典没有has_key()方法,我应该如何修改建议的代码? 我想在__()方法中可能有一些内部__或类似的东西。

请问有什么想法吗?

Python 3具有字典键视图,而是一个更强大的概念。 您的代码可以写成

some_dict.keys() & another_dict.keys()

在Python 3.x. 这将两个字典的公共键作为一组返回。

这也可以在Python 2.7中使用方法dict.viewkeys()

作为原始代码的更接近匹配,您还可以使用列表理解:

[key for key in some_dict if key in another_dict]

原始代码更接近的匹配是使用dict.__contains__() ,这是与in运算符对应的魔术方法:

filter(another_dict.__contains__, some_dict.keys())

但请不要使用此代码。 我建议使用第一个版本,这是唯一强调some_dictanother_dict之间对称性的some_dict

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM