在python中检查字典键的好方法是什么?

时间:2016-05-26 09:02:35

标签: python python-2.7

我有一个超过某些值的循环。我有一个字典,它的键是循环迭代的值。

我无法改变外环。

for i in range(1, 1000000000000):
    if i in my_dict.keys():
        func()

other_func(i)

my_dict.keys()中的每个元素都显示在range(1, 1000000000000)中。 但是my_dict.keys()中的元素数量要小得多 迭代次数。

问题在于每次检查都很耗时。处理这个问题的好方法是什么?

4 个答案:

答案 0 :(得分:9)

我认为你可以这样做:

for i in my_dict:
   if 0 < i < 1000000000000:
       func()

range(1, 1000000000000)会生成从1999999999999的数字列表,您只需要检查您的密钥是否在该范围内。因此,您并不需要使用range本身生成列表。

答案 1 :(得分:0)

更改你的for循环。见下文。

for key in my_dict.keys():
    if 0 < int(key) < 1000000000000:
        func()

更改for循环,因为在循环的原始实现中将迭代最多1000000000000次。但现在它将迭代my_dict的最大长度。

答案 2 :(得分:0)

好吧,exceptfor i in range(1, 100000000): try: my_dict[i] except KeyError: continue func() 是一个不错的选择。

i

如果keys中没有KeyError,那么它会抛出i并进入下一次迭代。如果key合适func(),则会调用RegisterInstance()

答案 3 :(得分:0)

最简单的方法是,

如果my_dict.has_key(&#39; key&#39;):