Python-四種數(shù)據(jù)結(jié)構(gòu)
列表
列表(list)用來存儲(chǔ)不同的數(shù)據(jù)類型,使用 [ ] ,逗號(hào)分隔不同的數(shù)據(jù)項(xiàng)
num = ['one','two','three']

image-20210926090503080
列表的特性
索引

image-20210924155608576
print(num)
print(num[0])
print(num[-1])

image-20211019101955054
切片
print(num[1:])
print(num[:-1]) # 打印最后一個(gè)元素之前的內(nèi)容
print(num[::-1]) # 倒序輸出

image-20210926102850223
重復(fù)
print(num*3)

image-20210926105731623
連接
num1 = ['four','five','six']
print(num + num1)

image-20210926112705270
列表里嵌套列表
list = [[1,2,3],['a','b','c'],['one','two','three']]
print(list[0][1]) # 打印第一個(gè)列表的第二個(gè)元素
print(list[:][2]) # 打印第二個(gè)列表

image-20210926113856034
列表的增刪改查
增加
# 連接的方式添加
num2 = num + ['seven']
print(num2)
# 單個(gè)元素的添加 - append()
num2.append('eight')
print(num2)
# 多個(gè)元素的添加 - extend()
num2.extend(['nine','ten'])
print(num2)
# 指定位置插入元素 - insert()
# 在第三個(gè)位置前插入 four
num2.insert(2,'four')
print(num2)

image-20210926164157748
刪除
num3 = num
print(num3)
# 移除列表中的一個(gè)元素,默認(rèn)最后一個(gè)元素,并且返回該元素的值 - pop()
num3.pop(0)
print(num3)
# 指定刪除對(duì)象的名字 - remove()
num3.remove('two')
print(num3)
# 直接刪除整個(gè)列表 - del
del num3
print(num3)

image-20210926170056762
賦值
num3 = num
print(num3)
num3[0] = 1
num3[1:] = [2,3]
print(num3)

image-20211019102352908
查看
num3 = num
print(num3)
# 查看出現(xiàn)的次數(shù)
num3.count('two')
# 查看指定元素的索引值
num3.index('one')
# 從第一個(gè)和第三個(gè)元素之間查看two
num3.index('two',0,3)

image-20210927154446984
字典
字典這種數(shù)據(jù)結(jié)構(gòu)的特征使用名稱-內(nèi)容進(jìn)行數(shù)據(jù)的構(gòu)建,在python中分別對(duì)應(yīng)著鍵(key)- 值(value),習(xí)慣上稱之為鍵值對(duì)
特征:
- 字典中數(shù)據(jù)必須是以鍵值對(duì)的形式出現(xiàn)的
- 邏輯上講,鍵是不能重復(fù)的,而值是可以重復(fù)的
- 字典中的鍵(key)是不可變的,也就是無法修改的,而值(value)是可變的,可修改的,可以是任何對(duì)象
創(chuàng)建字典
# 直接創(chuàng)建
test = {'num1':'one','num2':'two','num3':'three'}
print(test)
# 將雙元素序列轉(zhuǎn)化為字典 - dict()
items = [('num1','one'),('num2','two'),('num3','three')]
test1 = dict(items)
print(test1)

image-20210929094441455
字典訪問
# 創(chuàng)建測(cè)試字典
test2 = {'num1':[1,'one','a'],'num2':[2,'two','b']}
# 打印 num1 對(duì)應(yīng)的內(nèi)容列表
print(test2['num1'])
# 打印 num1 對(duì)應(yīng)的內(nèi)容列表的第二個(gè)
print(test2['num1'][1])

image-20210929102115566
修改與添加字典
num = {'num1':[1,'one'],'num2':[2,'two']}
print(num)
# 修改 num1 對(duì)應(yīng)的內(nèi)容為 a
num['num1'] = 'a'
print(num)
# 添加 num3 及其對(duì)應(yīng)值 3
num['num3'] = 3
print(num)

image-20210929110004926
字典刪除
num = {'num1':[1,'one'],'num2':[2,'two'],'num3':[3,'three']}
print(num)
# del 刪除指定條目
del num['num1']
print(num)
# 刪除指定條目-pop(鍵,默認(rèn)值),不加默認(rèn)值系統(tǒng)會(huì)報(bào)錯(cuò)
num.pop('num1')
num.pop('num1','不存在')
num.pop('num2')
print(num)
# 清空目錄-clear(),空字典
num.clear()
print(num)
# del 刪除字典
del num
print(num)

image-20211012233044850
查找字典
num = {'num1':[1,'one'],'num2':[2,'two'],'num3':[3,'three']}
print(num)
# 成員運(yùn)算符 in -查找條目在字典中,返回值為true,反之為 false
'num1' in num
'num4' in num
# 獲取條目值 - get()。如果指定鍵不在字典中,有默認(rèn)值返回默認(rèn)值,沒有默認(rèn)值不返回任何信息
num.get('num4','不存在')
num.get('num4')

image-20211014105112017
字典的整體操作
遍歷
num = {'num1':[1,'one'],'num2':[2,'two'],'num3':[3,'three']}
print(num)
# 遍歷字典中所有的鍵 - keys()
for key in num.keys():
print(key,num[key])
# 遍歷字典中所有的值 - values(),無法映射到對(duì)應(yīng)的鍵
for value in num.values():
print(value)
# 遍歷字典中所有的條目 - items()
for key,value in num.items():
print('key: ',key)
print('value',value)

image-20211014133001591
字典合并
N1 = {'num1':[1,'one'],'num2':[2,'two']}
print(N1)
N2 = {'num3':[3,'three']}
print(N2)
for key,value in N1.items():
N2[key] = value
print(N1)
print(N2)

image-20211014135529460
元組
一般通過直接賦值的方式創(chuàng)建元組,用逗號(hào)間隔元素,可以用括號(hào)括起來,也可以不用。元組不可修改,但可以像列表一樣被查看索引
創(chuàng)建元組
N1 = (1,'a','one')
print(N1,type(N1))
N2 = 1,'a','one'
print(N2,type(N2))
# 單個(gè)元素后面加一個(gè)逗號(hào),類型為元組
N3 = ('two',)
print(N3,type(N3))
N4 = ('two')
print(N4,type(N4))

image-20211015112712170
元組元素訪問
num = (1,2,3,4,5,6,7,8,9)
print(num,type(num))
#使用索引訪問元組中的某個(gè)元素
print(num[2])
print(num[-1])
#使用切片訪問元組中的一組元素
print(num[1:3])
print(num[-3:-1])
print(num[0:7:2])

image-20211015140242610
集合
集合是一個(gè)無序的不重復(fù)元素序列,不能被切片也不能被索引,除了做集合運(yùn)算之外,集合元素可以被添加刪除
創(chuàng)建集合
可以使用大括號(hào) {} 或者 set() 函數(shù)創(chuàng)建集合,創(chuàng)建一個(gè)空集合必須用 set() 而不是 {},因?yàn)?{} 是用來創(chuàng)建一個(gè)空字典
# set()只能傳遞一個(gè)參數(shù),多個(gè)參數(shù)可以先構(gòu)建一個(gè)列表
N1 = set('a','b','c')
N1 = set(['a','b','c'])
print(type(N1))
N2 = {'c','d'}
print(type(N2))
N3 = {}
print(type(N3))
N4 = set()
print(type(N4))

image-20211019092457022
集合的基本操作
添加元素
print(N1)
# add() - 只能添加一個(gè)元素,如果元素已存在,則不進(jìn)行任何操作
N1.add('d')
print(N1)
# update() - 可以添加元素,且參數(shù)可以是列表,元組,字典等
N1.update(['a','f'])
print(N1)

image-20211019095442960
移除元素
print(N1)
# remove() - 如果元素不存在,則會(huì)發(fā)生錯(cuò)誤
N1.remove('a')
print(N1)
# discard() - 如果元素不存在,不會(huì)發(fā)生錯(cuò)誤
N1.discard('b')
print(N1)

image-20211019101426014
清空集合
print(N1)
# 清空集合 - clear()
N1.clear()
print(N1) # 空白集合打印 set(),{}表示的是空白字典
print(type(N1))

image-20211019101621385
參考書目:編程小白的第1本Python入門書 - 侯爵