python中的資料結構比較
列表:list=[val1,val2]
1.列表中的每一個元素都是可變的,有序的,可以被檢視索引的。
可變意味著可以對每個元素進行增刪改查的操作,列表中的元素可以是Python中的任何物件
(1)建立列表的方法:
一.是用方括號[]直接賦值,賦一組以逗號隔開的值; newlist=[1,2,3] print(newlist) #[1, 2, 3] print(type(newlist)) #檢視型別為:<class 'list'> 二.是呼叫list函式進行定義。 tup=('q','w','e') print(type(tup)) #<class 'tuple'> change_tup=list(tup) print(type(change_tup))#<class 'list'>
(2)增加操作
一.通過append方法,可以將元素新增到列表的末尾 change_tup.append('f') print(change_tup) #['q', 'w', 'e', 'f'] 二.利用insert可以將元素插入到列表的指定位置 change_tup.insert(0,'a') print(change_tup) #['a', 'q', 'w', 'e', 'f'] 三.extend將指定序列的元素依次追加到列表的尾部(合併), 不會去重複內容 addlist=['b','c','a'] change_tup.extend(addlist) print(change_tup) #['a', 'e', 'f', 'b', 'c', 'a']
(3)刪除操作
一.pop用於刪除除並返回指定索引處的元素 change_tup.pop(1) print(change_tup) #['a', 'w', 'e', 'f'] 二.remove用於按值刪除元素,它找到第一個符合要求的值 然後將其從列表中刪除 change_tup.remove('w') print(change_tup) #['a', 'e', 'f'] 三.del刪除整個列表或列表的資料,del 是 python 內建功能, 不是列表獨有的 del change_tup[-1] print(change_tup)#['a', 'e', 'f', 'b', 'c']
(4)查詢操作
index(元素名):獲取查詢元素在列表中的索引值 count(元素名):統計某元素在列表中出現的次數 if 某元素 in 列表名:判斷某元素是否在列表內
(5)修改操作
list[index] = value reverse():反轉列表 sort():從原列表上按從小到大排序 sorted(列表名)生成新列表按從小到大進行排序
(6)特殊操作
max(列表名):最大值 min(列表名):最小值
字典:dict={key1:val1,key2:val2}
1.字典中的值是可變的,無序的。
2.字典中的資料必須以鍵值對的形式出現
3.鍵不可重複,值可重複
4.字典中鍵(key)是不可變的,為不可變物件,不能進行修改;而值(value)是可以修改的,可以是任何物件。
(1)增加操作
變數名[key]=value 通過 key 新增 value 值,如果 key 存在則覆蓋
setdefault(key,default_value) 指定 key 和 value,如果 key 存在則覆蓋
(2)刪除操作
pop 彈出,返回並刪除指定鍵對應的值
popitem 隨機彈出一個鍵值元組,這裡隨機的原因是因為字典無序
clear 清空字典
(3)修改操作
變數名[key]=value 通過 key 新增 value 值,如果 key 存在則覆蓋
update() 傳遞一個字典,如果 key 相同則覆蓋,沒有的 key 則新增
(4)查詢操作
keys 返回一個包含字典所有 key 的列表
values 返回一個包含字典所有 vaule 的列表
get 以鍵取值,如果指定鍵不存在,預設返回 None,可以指定返回內容
update 以字典格式更新指定鍵的內容,如果鍵不存在,建立鍵和值
items 返回字典鍵值呈元組形式的格式
元組:tuple=(val1,val2)
1.元組是不可修改,但可以被檢視索引的
2.空的tuple可以記為(),若只有一個元素的tuple記為(1,)
(1)列舉
遍歷的時候使用:重新生成下標和元素的元組
t=(1,2,3) for i in enumerate(t): print(i)#(0, 1)(1, 2)(2, 3)
(2)查詢操作
index(元素名) 從左往右返回第一個遇到的指定元素的索引,如果沒有,報錯
count(元素名) 返回元組當中指定元素的個數
(3)應用場景
字串格式化需要使用元組
函式返回多個返回值時返回的是元組型別
一些內建函式的返回值是元組型別
集合:set={val1,val2}
1.集合中是不可變的,無序的。
1.集合更接近數學上集合的概念。集合中每個元素都是無序的、不重複的任意物件。
2.集合不能被切片,不能被索引,除了做集合運算之外,集合元素可以被新增和刪除。
(1)增加操作
add(elem)
update([elem]/(elem)/'elem')
(2)刪除操作
remove(elem)
discard(elem)
pop()
clear()
(3)查詢操作
in
not in
(4)使用場景
去重
5.其他方法
1.查各個資料長度:
len(型別名)
2.資料型別是否可變
可變定義:當該資料型別的對應變數的值發生了改變,那麼它對應的記憶體地址不發生改變
可變:列表,字典 ,集合
不可變:數字,字串,元組
3.列表,元祖,集合的解包
a,*b = [1,2,3] a=1,b=2,3
*a,b = [1,2,3] a=1,2 b=3
以列表為列子,其他兩種型別同理
4,列表,元祖的合併和重複
l1=[1,2]
l2=[3,4]
print(l1+l2)
print(l1*2)
元祖同理