python速度比較 列表與元組的速度比較

2021-10-10 17:48:40 字數 1124 閱讀 7662

ipython 中用 magic 命令 %timeit 來計時。

比較生成速度

%timeit [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]

1000000 loops, best of 3: 456 ns per loop

%timeit (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)

10000000 loops, best of 3: 23 ns per loop

可以看到,元組的生成速度要比列表的生成速度快得多,相差大概乙個數量級。

比較遍歷速度

產生內容相同的隨機列表和元組:

from numpy.random import rand

values = rand(10000,4)

lst = [list(row) for row in values]

tup = tuple(tuple(row) for row in values)

%timeit for row in lst: list(row)

100 loops, best of 3: 4.12 ms per loop

%timeit for row in tup: tuple(row)

100 loops, best of 3: 2.07 ms per loop

在遍歷上,元組和列表的速度表現差不多。

比較遍歷和索引速度:

%timeit for row in lst: a = row[0] + 1

the slowest run took 12.20 times longer than the fastest. this could mean that an intermediate result is being cached

100 loops, best of 3: 3.73 ms per loop

%timeit for row in tup: a = row[0] + 1

100 loops, best of 3: 3.82 ms per loop

元組的生成速度會比列表快很多,迭代速度快一點,索引速度差不多。

PYTHON 列表與元組

列表簡介 是一種內建的資料結構,用來儲存一系列的元素 同js一樣,由於解釋性語言不必宣告資料型別,所以陣列的元素也可以很靈或的不相同。列表的運算 index索引運算 切片運算 拼接運算 重複運算 成員運算in 長度運算len 迴圈for 列表方法 list.intex 可以返回任意的方法 my li...

python列表與元組

在python中,最基本的資料結構為序列 sequence 序列中的每個元素都有編號,即其位置或索引,其中第乙個元素的索引為0,第二個元素的索引 為1,依此類推。在有些程式語言中,從1開始給序列中的元素編號,但從0開始指出相對於序列 開頭的偏移量。這顯得更自然,同時可迴繞到序列末尾,用負索引表示序列...

Python元組與列表

序列型別 元組 tuple 是序列型別中比較特殊的型別,因為它一旦建立就不能被修改。元組型別在表達固定資料項 函式多返回值 多變數同步賦值 迴圈遍歷等情況下十分有用。python中元組採用逗號和圓括號 可選 來表示。序列型別有12個通用的操作符和函式 操作符描述 x in s 如果x是s的元素,返回...