python **常用in來判斷乙個元素是否在list中,這個判斷的時間複雜度是多少呢?
in list : o(n)
inset
: o(1)
in dict : o(1)
具體的時間差多少呢,跑了下資料,具體如下
list1 =
list
(range
(100000))
%timeit 1
in list1
51.3 ns ± 4.23 ns per loop (mean ± std. dev. of 7 runs,
10000000 loops each)
%timeit 100
in list1
1.33 µs ± 106 ns per loop (mean ± std. dev. of 7 runs,
1000000 loops each)
%timeit 10000
in list1
130 µs ± 10.9 µs per loop (mean ± std. dev. of 7 runs,
10000 loops each)
%timeit 100000
in list1
1.48 ms ± 117 µs per loop (mean ± std. dev. of 7 runs,
1000 loops each)
%timeit 10000000
in list1
1.44 ms ± 175 µs per loop (mean ± std. dev. of 7 runs,
1000 loops each)
# 尋找的元素在list中位置前後會影響取出資料的時間,最後兩次都是1.48ms了,
# 並且位置對查詢時間的影響基本是線性的
set1 =
set(
range
(100000))
%timeit 1
in set1
47.7 ns ± 5.93 ns per loop (mean ± std. dev. of 7 runs,
10000000 loops each)
%timeit 100
in set1
43.3 ns ± 1.35 ns per loop (mean ± std. dev. of 7 runs,
10000000 loops each)
%timeit 10000
in set1
59.6 ns ± 1.38 ns per loop (mean ± std. dev. of 7 runs,
10000000 loops each)
%timeit 100000
in set1
44.4 ns ± 1.38 ns per loop (mean ± std. dev. of 7 runs,
10000000 loops each)
%timeit 10000000
in set1
60.4 ns ± 2.82 ns per loop (mean ± std. dev. of 7 runs,
10000000 loops each)
# set 就很平均,dict跟set是一樣的就不多贅述。
python時間操作
1 計算時間差 q 如何方便的計算兩個時間的差,如兩個時間相差幾天,幾小時等 a 使用datetime模組可以很方便的解決這個問題,舉例如下 import datetime d1 datetime datetime 2009,3 23 d2 datetime datetime 2009,10 7 d...
python時間操作
不管何時何地,只要我們程式設計時遇到了跟時間有關的問題,都要想到 datetime 和 time 標準庫模組,今天我們就用它內部的方法,詳解python操作日期和時間的方法。1.將字串的時間轉換為時間戳 複製 如下 方法 a 2013 10 10 23 40 00 將其轉換為時間陣列 import ...
python 時間操作
把2018年6月30日轉化為元組和時間戳 time str 2018 06 30 09 59 26 print time.strptime time str,y m d h m s tup time time.strptime time str,y m d h m s print time.mkti...