Python: iterating over list vs over dict items efficiency

后端 未结 3 850
心在旅途
心在旅途 2020-12-03 21:40

Is iterating over some_dict.items() as efficient as iterating over a list of the same items in CPython?

3条回答
  •  旧时难觅i
    2020-12-03 22:33

    A little benchmark shows me that iterating a list is definately faster.

    def iterlist(list_):
        i = 0
        for _ in list_:
            i += 1
        return i
    
    def iterdict(dict_):
        i = 0
        for _ in dict_.iteritems():
            i += 1
        return i
    
    def noiterdict(dict_):
        i = 0
        for _ in dict_.items():
            i += 1
        return i
    
    list_ = range(1000000)
    dict_ = dict(zip(range(1000000), range(1000000)))
    

    Tested with IPython on Python 2.7 (Kubuntu):

    %timeit iterlist(list_)
    10 loops, best of 3: 28.5 ms per loop
    
    %timeit iterdict(dict_)
    10 loops, best of 3: 39.7 ms per loop
    
    %timeit noiterdict(dict_)
    10 loops, best of 3: 86.1 ms per loop
    

提交回复
热议问题