python數據結構_(列表)大O性能_學習筆記(2)

1.列表

1)一般列表操作命令的復雜度(準確來說是函數的復雜度)

在這里插入圖片描述

2)時間計算(timeit模塊和Timer對象)

要捕獲我們的每個函數執行所需的時間,我們將使用 Python 的 timeit 模塊。timeit 模塊旨在 允許 Python 開發人員通過在一致的環境中運行函數并使用盡可能相似的操作系統的時序機制 來進行跨平臺時序測量。 要使用 timeit,你需要創建一個 Timer 對象,其參數是兩個 Python 語句。第一個參數是一個 你想要執行時間的 Python 語句; 第二個參數是一個將運行一次以設置測試的語句。然后 timeit 模塊將計算執行語句所需的時間。默認情況下,timeit 將嘗試運行語句一百萬次。 當它完成列表 時,它返回時間作為表示總秒數的浮點值。由于它執行語句一百萬次,可以讀取結果作為執 行測試一次的微秒數。你還可以傳遞 timeit 一個參數名字為 number,允許你指定執行測試語 句的次數。以下顯示了運行我們的每個測試功能 1000 次需要多長時間。

#注:from __main__ import test1表示從當前環境導入test1函數到timeit環境中
t1 = Timer("test()","from __main__ import test")
print("contact" ,t1.timeit(number=1000),"ms")
#指定測試函數test的次數是1000次,返回的結果可以當成測試一次所需要的時間,單位為毫秒

在這里插入圖片描述

3)知識點

#創建Timer對象
t1 = Timer("需要測試的函數",“從本地導入需要測試的函數”)
#使用timeit模塊對函數進行測試,測試為一千次,返回的是秒數,可以理解為測試一次的毫秒數。1s = 1000ms
print(t1.timeit(number = 1000))

4)列表操作及性能

創建列表(4種方式)

#方式一:拼接
def test1():l = []for i in range(100000):l = l + [i]#方式二:append()方法
def test2():l = []for i in range(1000000):l.append(i)#方式三:創建列表生成器
def test3():l = [i for i in range(1000000)]#方式四:構造包裝列表的函數
def test4():l = list(range(1000000))

上面的四種方法,其復雜程度依次減小,執行時間縮短

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257020.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257020.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257020.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習C++不要糾結了

阿里,騰訊2家公司均工作過。處理高并發的底層基本都是使用C來完成的,騰訊確實90%的程序員都是C程序員,而且基本每個C程序員都有2本磚頭書---unix 環境高級編程 和 C Primer。 阿里大部分程序員都是JAVA程序員,但在關鍵的節點還是會…

找到你的位置(JS在頁面中的位置)最常用的方式是在頁面中head部分放置script元素,瀏覽器解析head部分就會執行這個代碼,然后才解析頁面的其余部分...

找到你的位置&#xff08;JS在頁面中的位置&#xff09; 我們可以將JavaScript代碼放在html文件中任何位置&#xff0c;但是我們一般放在網頁的head或者body部分。放在<head>部分 最常用的方式是在頁面中head部分放置<script>元素&#xff0c;瀏覽器解析head部分就…

國內主流.NET CMS系統整理

現在只要想做一個網站&#xff0c;馬上就想到去下載一個cms來改&#xff0c;方便&#xff0c;快速&#xff0c;現如今在網上隨便搜索下CMS都出現幾十個不一樣的品牌&#xff0c;有php的、java的、.net的&#xff0c;功能上也是各有千秋&#xff0c;如何選擇一個比較適合自己的C…

數據庫的事務級別介紹與操作

關系型數據庫都具有一套事務級別&#xff0c;以前的開發和學習過程我很少關注過這個概念&#xff0c;今天搜集了一些資料&#xff0c;在 結合spring聲明式事務學習的同時&#xff0c;總結一下數據庫的事務級別與操作。 READ-UNCOMMITTED: 未提交讀 會出現臟讀、不可重復讀、幻讀…

中國做圖像處理的公司

&#xff08;1&#xff09; 北京北方獵波科技有限公司&#xff1a;http://www.northwh.com/beifangliebo/main1.html 紅外探測成像產品 &#xff08;2&#xff09; 深圳超多維光電子有限公司北京分公司&#xff1a;http://www.superd.com.cn 立體顯示設備 &#xff08;3&…

[ilink32 Error] Error: Unresolved external 'SendARP'

[ilink32 Error] Error: Unresolved external SendARP referenced from E:\APPOBJ\KSRGETMAC.OBJ #pragma link "iphlpapi.lib" 轉載于:https://www.cnblogs.com/cb168/p/5573478.html

3.cocos2dx它Menu,由menu為了實現場景切換

&#xfeff;&#xfeff;1 頭文件 TMenu.h #ifndef __TMENU_H__ #define __TMENU_H__ #include "cocos2d.h" USING_NS_CC; class TMenu :public CCLayer { public: static CCScene * scene(); CREATE_FUNC(TMenu); bool init(); CCMenu * menu; void menuCallback(C…

Difference: throw or throw ex?

Difference: throw or throw ex? 主要區別在于throw出的堆棧詳細程度。 throw ex只是拋出在當前代碼處的錯誤。 throw 能夠更進一步&#xff0c;拋出內部調用的具體錯誤。 Just for demonstrating, if you have classes in C# as follows: using System;namespace WindowsAppl…

學習筆記01:1.1 基于概率的信任

基于概率的信任 大數定律&#xff1a;當樣本數量越來越多時&#xff0c;預測事件也就越來越接近于真實的事件&#xff0c;事件出現的頻率無窮地接近事件發生的概率建模檢驗&#xff1a;人工規則->學習模型&#xff0c;數據少則重視先驗&#xff0c;數據多則重視后驗給予概率…

人工智能數學基礎知識

方差的概念與計算公式&#xff0c;例1 兩人的5次測驗成績如下&#xff1a;X&#xff1a; 50&#xff0c;100&#xff0c;100&#xff0c;60&#xff0c;50 E(X)72&#xff1b;Y&#xff1a; 73&#xff0c; 70&#xff0c; 75&#xff0c;72&#xff0c;70 E(Y)72。平均成績相同…

學習筆記02:直播串講——3/22

去 就 就 就 接近 就 就 接近

認真分析mmap:是什么 為什么 怎么用

mmap基礎概念 mmap是一種內存映射文件的方法&#xff0c;即將一個文件或者其它對象映射到進程的地址空間&#xff0c;實現文件磁盤地址和進程虛擬地址空間中一段虛擬地址的一一對映關系。實現這樣的映射關系后&#xff0c;進程就可以采用指針的方式讀寫操作這一段內存&#xff…

數據庫子查詢

子查詢&#xff0c;又叫做嵌套查詢。 將一個查詢語句做為一個結果集供其他SQL語句使用&#xff0c;就像使用普通的表一樣&#xff0c;被當作結果集的查詢語句被稱為子查詢。 子查詢有兩種類型&#xff1a; 一種是只返回一個單值的子查詢&#xff0c;這時它可以用在一個單值可以…

攝像頭資料

https://blog.csdn.net/u013749068/article/details/79463736

配置vim在源代碼中自動添加作者信息

每個程序員都有自己心愛的代碼編輯和查看工具&#xff0c;相信不少Linux下的程序員都喜歡用Vim&#xff0c;盡管Vim沒有SourceInsight這種依托于桌面環境的編輯器看起來那樣強大&#xff0c;但是Vim的高效、簡潔以及強大的可配置性都讓它吸引了無數忠實的fans。 很多編輯器都支…

paddle模塊的詳細介紹

https://blog.csdn.net/hua111hua/article/details/89415396

[CareerCup] 2.4 Partition List 劃分鏈表

2.4 Write code to partition a linked list around a value x, such that all nodes less than x come before all nodes greater than or equal to x. LeetCode上的原題&#xff0c;請參見我之前的博客Partition List 劃分鏈表。轉載于:https://www.cnblogs.com/grandyang/p/…

sdl的縮放問題

SDL是一種既是開源的&#xff0c;也是跨平臺的多媒體開發包&#xff0c;在各種平臺上應用很廣&#xff0c;經常和FFMPEG等解碼器同時使用。對于在windows mobile等缺乏通用播放器的平臺來說&#xff0c;是一種很好的選擇。網上很多代碼&#xff0c;介紹SDL的用法&#xff0c;主…

Ubuntu系統盤制作

1、首先打開UltraISO軟件&#xff0c;盡量下載最新版的&#xff0c;小編曾用某個舊版的UltraISO&#xff0c;制作的安裝盤&#xff0c;不能不能識別磁盤&#xff0c;安裝失敗! 2、點擊工具欄中的第二個打開鏡像文件工具&#xff0c;如圖紅色方框標志按鈕&#xff0c;然后在打開…