日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python最新版本 效率_Python:迭代列表与dict项目效率

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python最新版本 效率_Python:迭代列表与dict项目效率 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這取決于您使用的是哪個版本的Python.在Python 2中,some_dict.items()創建一個新列表,這會占用一些額外的時間并占用額外的內存.另一方面,一旦創建了列表,它就是一個列表,因此在列表創建的開銷完成后應具有相同的性能特征.

在Python 3中,some_dict.items()創建了一個視圖對象而不是列表,我預計創建和迭代items()會比在Python 2中更快,因為沒有必要復制.但是我也期望迭代已經創建的視圖比在已經創建的列表上迭代要慢一點,因為字典數據的存儲有點稀疏,我相信python沒有好辦法避免迭代每個bin.字典 – 甚至是空字典.

在Python 2中,一些時間證實了我的直覺:

>>> some_dict = dict(zip(xrange(1000), reversed(xrange(1000))))

>>> some_list = zip(xrange(1000), xrange(1000))

>>> %timeit for t in some_list: t

10000 loops, best of 3: 25.6 us per loop

>>> %timeit for t in some_dict.items(): t

10000 loops, best of 3: 57.3 us per loop

對項目進行迭代的速度大約是其兩倍.使用iteritems要快一點……

>>> %timeit for t in some_dict.iteritems(): t

10000 loops, best of 3: 41.3 us per loop

但迭代列表本身與迭代任何其他列表基本相同:

>>> some_dict_list = some_dict.items()

>>> %timeit for t in some_dict_list: t

10000 loops, best of 3: 26.1 us per loop

Python 3可以比Python 2更快地創建和迭代項目(與上面的57.3我們相比):

>>> some_dict = dict(zip(range(1000), reversed(range(1000))))

>>> %timeit for t in some_dict.items(): t

10000 loops, best of 3: 33.4 us per loop

但創建視圖的時間是可以忽略不計的;迭代實際上比列表慢.

>>> some_list = list(zip(range(1000), reversed(range(1000))))

>>> some_dict_view = some_dict.items()

>>> %timeit for t in some_list: t

10000 loops, best of 3: 18.6 us per loop

>>> %timeit for t in some_dict_view: t

10000 loops, best of 3: 33.3 us per loop

這意味著在Python 3中,如果要對字典中的項進行多次迭代,并且性能至關重要,則可以通過將視圖緩存為列表來獲得30%的加速.

>>> some_list = list(some_dict_view)

>>> %timeit for t in some_list: t

100000 loops, best of 3: 18.6 us per loop

總結

以上是生活随笔為你收集整理的python最新版本 效率_Python:迭代列表与dict项目效率的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。