python的4種資料結構
——學習筆記
清單list
字典dict
元組tuple
集合set
list = [val1,val2,val3,val4]
dict = {key1:val1,key2:val2}
tuple = (val1,val2,val3,val4)
set = {val1,val2,val3,val4}
清單
清單的特征
清單中的每一個元素是可變的
清單中的元素是有序的,也就是說每一個元素都有一個位置
清單可以容納Python的任何對象
清單元素可變,即可以在清單中增删改查元素
weekday=['monday','tuesday','wednesday'] print(weekday[0])
清單可以裝python的所有對象,例子
all_in_list =[ 1,#整數 1.0,#浮點數 'a word',#字元串 print(1),#函數 True,#布爾值 [1,2],#清單中套清單 (1,2),#元組 {'key':'value'}#字典 ]
清單的增删改查
插入
fruit = ['pineapple','pear'] fruit.insert(1,'grape')
fruit[0:0] = ['orange']
删除
fruit.remove('pear')
del a[0:2]
修改
fruit[0] = 'grapefruit'
查詢
elements = ['h','he','li','be','b','c','n','o,'f','ne'] print(elements[0]) print(elements[-2]) print(elements[0:3]) print(elements[-10:-7]) print(elements[-10:]) print(elements[:9])
print(elements['h'])#錯誤
清單直接說位置索引如果資料量很大的話,肯定會記不住什麼元素在什麼位置,那麼有沒有一種資料類型可以用人類的方式進行索引呢?于是字典出現了
字典
字典的特征
1.字典中資料必須以鍵值對的形式出現
2.邏輯上,鍵是不能重複的,值可以重複
3.字典中的鍵(key)是不可變的,也就是無法修改的;而值(value)是可變的,可以修改,可以使任何對象
code = { 'bidu':'baidu', 'sina':'sina' }
code = { 'bidu': }
錯誤:鍵和值不能脫離對方而存在
code = { []:'a test' }
錯誤:将一個可變的元素作為Key來建構字典
code = { 'bidu':123, 'bidu':123 }
錯誤:鍵不能重複
字典的增删改查
增加
code = { 'bidu':'baidu', 'sina':'sina' }
與清單不同的是,字典并沒有一個可以往裡面增加單一進制素的“方法”,但可以通過以下方式進行添加:
code['weixin':'weixin']
清單中用來添加多個元素的方法extend(),在字典中添加多個元素的方法update()
code.update({'fb':'facebook','tsla':'tesla'})
删除
del code['fb']
修改
code['fb':'fb']
查詢
code['tsla']#字典是通過鍵來索引值
注意:字典是不能夠切片的,是以chart[1:4]是錯誤的*
元組
元組是一個穩固版的清單,因為元組不可修改,增删改不存在,可以查詢
letters = ('a','b','c') letter[0]
集合
集合則更接近數學上集合的概念。集合中的元素是無序的,不重複的任意對象,可以通過集合去判斷資料的從屬關系,還可以通過集合把資料結構中重複的元素删除
集合的增删改查
增加
a_set = {1,2,3,4} a_set.add(5)
a_set.update([5,6,7,8])
删除
a_set.discard(5)
a_set.remove(6)#如果要删除的元素在集合中不存在,則出錯
修改
a_set ={a,g,c,d} a_set={'abckde'} a_set={"abkc"}#注意:這裡是隻有一個元素
查詢
a_set
差集、交集、合集
a = set('abc') b = set('cdef')
差集
a-b
輸出是set(['a','b'])
b-a
輸出是set(['d','e','f'])
交集
a & b
輸出是set(['c'])
合集
a | b
輸出是set(['a','b',d','e','f'])