資料結構之列表

2021-08-17 12:32:42 字數 3173 閱讀 1852

在基礎資料結構中,列表作為最為基礎的乙個資料結構進行體現,在乙個程式中決定效率的關鍵核心因素就是資料結構資料演算法,二者共同決定*時間複雜度的型別,因此萬丈高樓平地起,就從最基礎的列表操作和分析其時間複雜度開始

方法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 資料結構之列表 元組

今天來分享一下關於列表和元組的學習心得。本篇是資料型別系列的倒數第二篇,最後一篇我們單獨留給元組,同時會在該篇中解釋原因,敬請期待。關於列表,這一型別可以說是與之前所分享的 集合 型別相似。但是,僅僅是相似而已,還是存在差距的,要不怎麼會是一種新的資料型別呢 列表用 表示,內部用逗號 分隔。內部元素...