【发布时间】:2015-04-30 09:18:12
【问题描述】:
我现在还没有进行基准测试,我想知道迭代中字典的 items()(或 keys() 或 values())方法的成本。让我解释一下:
我有 2 个字典(当然,我真正的字典要长得多):
One = {'a': 'dontmind', 'b': 'dontmind', 'c': 'whatever'}
Two = {'a': 'dontmind', 'c': 'dontmind'}
我想检查“Two”的所有键是否都在“One”中,并且会这样做:
if all([key in One.keys() for key in Two.keys()]) :
# do stuff!
考虑到性能,我想知道这种方式是否更好:
one_keys = One.keys()
two_keys = Two.keys()
if all([key in one_keys for key in two_keys]) :
# do stuff!
在这种情况下,keys() 方法只为每个 dict 调用一次。我真的不知道从字典中提取键的基本过程,以及这两种方式之间的差异是否真的有意义。你能帮帮我吗?
另外,我应该这样考虑吗?
one_keys = One.keys()
two_keys = Two.keys()
for key in two_keys :
if key not in one_keys :
break
else :
# do stuff!
感谢您的回答。
【问题讨论】:
-
你用的是什么版本的 Python?
-
我使用的是 python 2.7
标签: python performance python-2.7 dictionary iterable