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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

list dict 性能测试

發布時間:2025/3/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 list dict 性能测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from random import randintdef load_list_data(total_nums, target_nums):"""從文件中讀取數據,以list的方式返回:param total_nums: 讀取的數量:param target_nums: 需要查詢的數據的數量"""all_data = []target_data = []file_name = "fbobject_idnew.txt"with open(file_name, encoding="utf8", mode="r") as f_open:for count, line in enumerate(f_open):if count < total_nums:all_data.append(line)else:breakfor x in range(target_nums):random_index = randint(0, total_nums)if all_data[random_index] not in target_data:target_data.append(all_data[random_index])if len(target_data) == target_nums:breakreturn all_data, target_datadef load_dict_data(total_nums, target_nums):"""從文件中讀取數據,以dict的方式返回:param total_nums: 讀取的數量:param target_nums: 需要查詢的數據的數量"""all_data = {}target_data = []file_name = "fbobject_idnew.txt"with open(file_name, encoding="utf8", mode="r") as f_open:for count, line in enumerate(f_open):if count < total_nums:all_data[line] = 0else:breakall_data_list = list(all_data)for x in range(target_nums):random_index = randint(0, total_nums-1)if all_data_list[random_index] not in target_data:target_data.append(all_data_list[random_index])if len(target_data) == target_nums:breakreturn all_data, target_datadef find_test(all_data, target_data):#測試運行時間test_times = 100total_times = 0import timefor i in range(test_times):find = 0start_time = time.time()for data in target_data:if data in all_data:find += 1last_time = time.time() - start_timetotal_times += last_timereturn total_times/test_timesif __name__ == "__main__":# all_data, target_data = load_list_data(10000, 1000)# all_data, target_data = load_list_data(100000, 1000)# all_data, target_data = load_list_data(1000000, 1000)# all_data, target_data = load_dict_data(10000, 1000)# all_data, target_data = load_dict_data(100000, 1000)# all_data, target_data = load_dict_data(1000000, 1000)all_data, target_data = load_dict_data(2000000, 1000)last_time = find_test(all_data, target_data)#dict查找的性能遠遠大于list#在list中隨著list數據的增大 查找時間會增大#在dict中查找元素不會隨著dict的增大而增大print(last_time)
不可變對象 都是可hash的, str, fronzenset, tuple,自己實現的類 __hash__ dict的內存花銷大,但是查詢速度快, 自定義的對象 或者python內部的對象都是用dict包裝的

查找效率:set>dict>list

單次查詢中:看來list 就是O(n)的;而set做了去重,本質應該一顆紅黑樹(猜測,STL就是紅黑樹),復雜度O(logn);dict類似對key進行了hash,然后再對hash生成一個紅黑樹進行查找,其查找復雜其實是O(logn),并不是所謂的O(1)。O(1)只是理想的實現,實際上很多hash的實現是進行了離散化的。dict比set多了一步hash的過程,so 它比set慢,不過差別不大。

轉載于:https://www.cnblogs.com/richiewlq/p/11075266.html

總結

以上是生活随笔為你收集整理的list dict 性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 少妇的性事hd | 嫩草影院国产 | 精品裸体舞一区二区三区 | 精品久久在线 | 亚洲伦理精品 | 91秘密入口 | 色婷婷热久久 | 一女三黑人理论片在线 | 思思99re | 国产成人无码精品久在线观看 | 国内少妇精品 | 日本天天操 | 中文字幕av第一页 | 污网站免费在线观看 | 国产黑丝精品 | 黄色免费网站在线 | 日本高清视频在线播放 | 99热青青草 | 男女视频免费 | 色婷婷av久久久久久久 | 欧美乱轮 | 人人干人人搞 | 国产成人毛片 | 欧美一级做a爰片免费视频 成人激情在线观看 | 日本高清免费aaaaa大片视频 | 中国亚洲老头同性gay男男… | 免费成人激情视频 | 不卡av电影在线 | 岛国精品一区二区三区 | 午夜剧场福利 | 国产欧美二区 | 成人免费观看av | 韩日精品在线观看 | 国产精品无码免费在线观看 | 中文字字幕 | 美妇av | 日本色www | 亚洲色网址 | 最近中文字幕在线中文高清版 | 色干网 | 人妻少妇精品无码专区久久 | 欧美美女色图 | 尤物一区| 超碰牛牛| 中文字幕在线日韩 | 花房姑娘免费观看全集 | 亚洲最新中文字幕 | 蜜臀av性久久久久蜜臀av麻豆 | 日韩avxxx| 毛片毛片毛片毛片毛片毛片毛片 | www.亚洲视频 | 香蕉视频在线观看网站 | 伊人丁香| 任你躁av一区二区三区 | 操出白浆视频 | 欧美性俱乐部 | 蜜桃传媒一区二区亚洲 | 国产午夜毛片 | 最新极品jizzhd欧美 | 欧洲一二三区 | 黄色大片久久 | 古装做爰无遮挡三级聊斋艳谭 | 欧美日韩精品亚洲精品 | 日韩精品免费在线视频 | 久久精品国产亚洲AV无码男同 | 四虎新网站 | 91精品国产一区 | 香蕉视频污视频 | 五月婷在线| 亚洲特黄视频 | 国产精品桃色 | 日韩av高清在线播放 | 亚洲AV无码精品色毛片浪潮 | 久久婷综合 | 色婷婷av国产精品 | 牲欲强的熟妇农村老妇女视频 | 免费观看nba乐趣影院 | 国产主播自拍av | 美女考逼 | 欧美在线观看视频一区二区 | 国产激情四射 | 夜夜撸影院 | 日韩天堂av | 亚洲乱码日产精品bd在线观看 | 好姑娘在线观看高清完整版电影 | 日韩欧美精品在线播放 | 成人午夜福利视频 | 日韩在线不卡一区 | 国产在线视频99 | 在线你懂 | 国产欧美日本 | 国产伦精品一区 | www国产com | 三上悠亚一区二区在线观看 | 一区小视频 | 日本少妇全体裸体洗澡 | 国产精品av一区 | av日韩一区二区三区 | 夜夜爽av福利精品导航 |