在基礎資料結構中,列表作為最為基礎的乙個資料結構進行體現,在乙個程式中決定效率的關鍵核心因素就是資料結構和資料演算法,二者共同決定*時間複雜度的型別,因此萬丈高樓平地起,就從最基礎的列表操作和分析其時間複雜度開始
方法1:列表賦值
lis =
方法2 :列表疊加
列表疊加要注意,疊加的是可迭代物件-新增列表中的元素
-就地修改
list.extend()
-新增**可迭代物件**如,range()或
-就地修改
list.insert(index, object)
-新增列表中的元素
-就地修改
list.remove(value)
-列表從左到右匹配到的第乙個值刪除
-就地修改
list.pop(index)
-列表刪除具體索引到的某乙個值
-就地修改
list.reverse()
-列表進行翻轉
-就地修改
list.+
-列表與列表之間進行疊加
-生成新列表
根據**結果測試,
**如下:
#!/bin/python3
#-*- coding: utf-8 -*-
import datetime
start1 = datetime.datetime.now()
deft1
(): lis =
for i in range(1,10001):
return lis
print(t1())
deltat1 =(datetime.datetime.now() - start1).total_seconds()
#test time about list + list
start2 = datetime.datetime.now()
deft2
(): lis =
for i in range(1,10001):
lis += [i]
return lis
print(t2())
deltat2 =(datetime.datetime.now() - start2).total_seconds()
#test time about list comprehensions
start3 = datetime.datetime.now()
deft3
():lis = [i for i in range(1,10001)]
return lis
print(t3())
deltat3 =(datetime.datetime.now() - start3).total_seconds()
#test time about list() function
start4 = datetime.datetime.now()
deft4
(): lis = list(range(1,10001))
return lis
print(t4())
deltat4 =(datetime.datetime.now() - start4).total_seconds()
#test time about list.extend
start5 = datetime.datetime.now()
deft5
(): lis =
for i in range(1,10001):
lis.extend([i])
return lis
print(t5())
deltat5 =(datetime.datetime.now() - start5).total_seconds()
#test 對比尾部追究和頭部追加的效率
start6 = datetime.datetime.now()
deft6
(): lis =
for i in range(1,1000001):
print(t6())
deltat6 =(datetime.datetime.now() - start6).total_seconds()
start7 = datetime.datetime.now()
deft7
(): lis =
for i in range(1,1000001):
lis.insert(0,i)
print(t7())
deltat7 =(datetime.datetime.now() - start7).total_seconds()
#print time
print('list.+ list time : {}'.format(deltat2))
print('list.compre time : {}'.format(deltat3))
print('list.list() time : {}'.format(deltat4))
print('list.extend time : {}'.format(deltat5))
print('對比尾部追加和頭部追加元素的效率')
print('list.尾部追加 time : {}'.format(deltat6))
print('list.頭部追加 time : {}'.format(deltat7))
執行結構如下:
list.+ list
time : 0.003997
list.compre time : 0.002984
list.list() time : 0.004476
list.extend time : 0.004189
對比尾部追加和頭部追加元素的效率
list.尾部追加 time : 0.083354
list.頭部追加 time : 274.047424
在列表的操作中列表生成器和列表疊加效率相對較好,若在列表中新增某些元素,從列表後進行追加比列表頭進行插入效率相對較好
python資料結構之列表
和字串一樣,列表也是python中使用最普遍的資料結構之一,而且它很靈活,可以儲存多種不同的物件 數字,字串,甚至於其他的列表。列表的建立方法 1 利用python的內建方法list l1 list python l1 p y t h o n 2 直接賦值給方括號,元素之間用逗號隔開 l2 1,2,...
python資料結構之列表
null list int list 1 2,3 str list a b c int str list 1 2,a b int list 1 2,3 int list 4 out 1,2,3,1,2,3,1,2,3,1,2,3 一種是利用 操作符 int list 1 2,3 str list a...
Python 資料結構之列表 元組
今天來分享一下關於列表和元組的學習心得。本篇是資料型別系列的倒數第二篇,最後一篇我們單獨留給元組,同時會在該篇中解釋原因,敬請期待。關於列表,這一型別可以說是與之前所分享的 集合 型別相似。但是,僅僅是相似而已,還是存在差距的,要不怎麼會是一種新的資料型別呢 列表用 表示,內部用逗號 分隔。內部元素...