Python中常用的資料結構

2021-10-25 03:58:46 字數 2953 閱讀 7020

list是python中使用最頻繁的資料型別。列表可以完成大多數集合類的資料結構的實現。列表中元素的型別可以不相同,它支援數字、字串、甚至可以包含其他巢狀列表(巢狀)

列表是寫在    裡,各元素間用逗號隔開的元素列表。

注:列表和字串一樣,同樣可以被索引和擷取,列表被擷取後返回乙個包含所需元素的新列表

變數名[頭下標:尾下標]

a = [1, 2, 3, 4, 5, 6]

#切片使用

#元素修改

a[2:4] = ['a', 'b', 'c']

#按照範圍輸出元素(前閉後開)

print(a[2:4])

1、與python字串不同的是,列表中的元素是可以改變的

a = [1, 2, 3, 4, 5, 6];

a[0] = 'a'

a[2:3] = ['b', 'hello_world']

print(a) #['a', 2, 'b', 'hello_world', 4, 5, 6]

2、新增元素

extend([x, x, x])      在列表尾部追加乙個新列表(加大原列表的長度)

insert(下標,元素)  在指定下標處插入對應的元素

3、刪除元素

remove(元素)      刪除第乙個匹配的元素;若原列表中沒有,則報錯

del 列表名[下標]  刪除對應下標的元素

pop(下標)            刪除對應下標的元素

4、python中的不足:列表間直接賦值時,修改乙個會影響另乙個

a = [1, 2, 3, 4]

b = a

b[0] = 999

print(a) #[999, 2, 3, 4]

print(b) #[999, 2, 3, 4]

#此時推薦使用copy來進行賦值

b = a.copy()

元組與列表類似,不同之處在於元組中的元素不支援修改,元組寫在 () 括號內,元素之間用逗號隔開,元組中的元素型別也可以不同

4、元組也可以使用+操作符進行拼接。

字典是python中另乙個非常有用的內建資料型別。前面介紹的裂帛i啊是有序的物件集合,字典是無序的的物件集合,兩者的區別在於:字典中的元素是通過鍵來訪問的,而不是通過索引值

字典是一種對映型別,字典用 {} 標識,它是乙個無序的鍵(key):值(value)對的集合。在同乙個字典中,鍵(key)必須是唯一的,但是值則不必唯一,值可以取任何資料型別,但是鍵必須是不可變的,如字串、數字、元組。

1、字典增加新的內容

dict1 = 

print(dict1)

dict1["job"] = "student"

print(dict1)

2、建構函式 dict() 可以直接從鍵值對序列中構建字典如下:

>>> list = [('aaa', 1), ('bbb', 2), ('ccc', 3)]

>>> dict(list)

3、clear()、keys()、values()

字典型別也有一些內建的函式,例如clear()、keys()、values()等。

>>> dic = dict(ddd=4, eee=5, fff=6)

>>> dic

>>> dic.keys()

dict_keys(['ddd', 'eee', 'fff'])

>>> dic.values()

dict_values([4, 5, 6])

>>> dic.clear()

>>> dic

{}

集合是乙個無序不重複的序列。基本功能是進行成員關係測試和刪除重複元素。可以使用 {} 或者set()函式建立集合。

注意:建立乙個空集合必須用set()函式而不是 {}

print(company) # 輸出集合,重複的元素被自動去掉

#成員測試

if 'facebook' in company:

print('facebook 在集合中')

else:

print('facebook 不在集合中')

python中的字串用單引號 ' 或雙引號 " 括起來,同時使用反斜槓 \ 轉義特殊字元。

1、python 使用反斜槓 \ 轉義特殊字元,如果你不想讓反斜槓發生轉義,可以在字串前面新增乙個 r,表示原始字串: 

>>> print('hello world')

hello world

>>> print('hello\nworld')

hello

world

>>> print(r'hello \n world')

hello \n world

STL中常用資料結構

stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...

STL中常用資料結構

stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...

資料結構中常用演算法

排序常用的演算法有 插入演算法 直接插入演算法 折半插入演算法 希爾演算法 選擇演算法 簡單選擇演算法 堆排序演算法 快速演算法 氣泡排序 快速排序演算法 以下程式給出了各種演算法的實現,其介面為void sort int array,int len 每個檔案實現乙個演算法,最後和main.c檔案編...