天天看點

python幾種資料結構_python的4種資料結構

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'])