今天元?dú)鉂M滿繼續(xù)學(xué)習(xí),很棒昨天內(nèi)容我都記住了耶
1.list和tuple
list和tuple是一種列表的數(shù)據(jù)類型,均為有序的,其中l(wèi)ist可以增刪改,tuple是不可修改的
(1)定義
list:? classmates=['a','b',['c','e'],2,'m'],list內(nèi)數(shù)據(jù)類型可以不同,也可以是list,采用[]
tuple:? M=('a','b',2,3,[1,2]),tuple內(nèi)數(shù)據(jù)類型也可以不同,也可以是list或者tuple,采用(),比如某個(gè)tuple只有一個(gè)元素,形式寫成t=(1,)與(1)區(qū)別開
(2)查詢
查詢整個(gè)list或者tuple內(nèi)的元素,可以直接輸入名稱,回車即可
查詢某個(gè)list或tuple的元素?cái)?shù)量,用len()函數(shù)

list和tuple的元素均是有排序的,順次從0開始,以此類推,查詢classmates中第二個(gè)元素,也就是classmates[1];同時(shí)也可以倒序查找,若查詢倒數(shù)第一個(gè)元素,即classmates[-1],倒數(shù)第二個(gè)為classmates[-2],特此說明一下,list和tuple查詢某個(gè)元素的時(shí)候均用[]
除了查詢某一個(gè)元素,還可以查詢某一個(gè)元素中的某個(gè)內(nèi)容,classmates[1][2]即為第二個(gè)元素中的第三個(gè)字符/元素


(3)接下來說一下涉及到的增刪改,此處就只有l(wèi)ist有此功能了
插入:末尾插入一元素,采用append(),classmates.append('Mei'),即在classmates這個(gè)list里追加一個(gè)‘Mei'的元素于末尾;若想自己控制在某個(gè)位置插入一個(gè)元素,可以使用insert()函數(shù),classmates.insert(2,'Yuan'),即在classmates中的2位置處插入’Yuan'元素

改:若將list中某一位置的元素更換,采用classmates[1]='hello'

刪除:若想刪掉list中的某元素,用pop()函數(shù),pop()為刪除list中末尾的元素,pop(i)為刪除list中位置為i的元素

(4)為什么list和tuple會(huì)同時(shí)存在呢?因?yàn)閠uple不可變,更為安全,如果可能能用tuple代替list就用tuple
min(tuple),max(tuple),可返回tuple中的最大最小值,list同樣有該用法
2.if語句
條件判斷是自動(dòng)化的基礎(chǔ),根據(jù)條件的判斷,執(zhí)行不同內(nèi)容,執(zhí)行內(nèi)容空兩格,縮進(jìn)相同的一組語句構(gòu)成一個(gè)代碼塊,我們稱之代碼組。if、elif、else條件后不要忘記:
if<判斷條件1>:
? ? ? ?<執(zhí)行1>
elif<判斷條件2>:
? ? ? ?<執(zhí)行2>
elif<判斷條件3>:
? ? ? ? <執(zhí)行3>
else:
? ? ? ?<執(zhí)行4>

3.循環(huán)
有兩種循環(huán)語句,for...in,和while語句
for..in:? 如for n in range(100),就是將range(100)中的元素依次賦值給n,一般用于將list或tuple中的每一個(gè)元素迭代出來,每次賦值完成執(zhí)行縮進(jìn)兩行的任務(wù),直至將所有的元素賦值完成后,循環(huán)結(jié)束。
while :只要條件滿足,就一直循環(huán)執(zhí)行縮進(jìn)兩格的任務(wù),直至不滿足while后的條件為止

4.dict和set
dict是類似字典的功能,以key-value的形式存儲(chǔ),其中key是不可變的且非重復(fù)的,具有極快的查找速度;它可以理解成兩個(gè)關(guān)聯(lián)的list表,組合在一起,dict的表示形式:L={'A':1,'B':2,'C':3},采用{},其中的內(nèi)容沒有順序,可以進(jìn)行查找,對(duì)key賦值等

L['A']=2,該語句若L里有‘A',則將’A'對(duì)應(yīng)的value改為2,若L中沒有‘A',則將’A‘以及其對(duì)應(yīng)的value增加到L中
L['A'],該語句是查詢L中key=['A']對(duì)應(yīng)的value,此時(shí)如果L中key有’A',則返回其value,若L中key沒有‘A',則報(bào)錯(cuò)
查詢某個(gè)dict里有沒有對(duì)應(yīng)的key,可以有in,’A' in L ,返回ture/false,或者L.get('A',0),若有‘A'返回其value,若沒有返回0(此處的0可以為任意值,但我覺得get方法有可能會(huì)有問題,如果要查詢的key對(duì)應(yīng)的value和get定義的值相同的時(shí)候,不能分清)
查詢dict中所有的key,L.keys(),查詢dict中所有的value,L.values()
刪除某個(gè)key,采用pop(key),其對(duì)應(yīng)的value也會(huì)一并刪除

set與dict的區(qū)別是沒有value,可以想象成dict中的key,因?yàn)閟et的內(nèi)容也是不可變且非重復(fù)的,所以set沒有查和改的功能
定義一組set:? A={[1,2,3,4]},需要提供一個(gè)list作為輸入集合,set顯示的內(nèi)容也沒有順序,若輸入的list中有重復(fù)的元素,set會(huì)自動(dòng)過濾掉。
set內(nèi)增加元素,采用add(key),? A.add(5)即可添加5進(jìn)入A中,還有一個(gè)方法可以增加一個(gè)元素、元組、list、dict,是update()

set刪除元素有三種方式,remove()刪除指定元素,若該元素沒有會(huì)發(fā)生錯(cuò)誤,discard()刪除指定元素,若該元素沒有不會(huì)發(fā)生錯(cuò)誤,pop()隨機(jī)刪除一個(gè)元素

由于set在數(shù)學(xué)概念上可以看作無序且無重復(fù)元素的集合,所以可以進(jìn)行交并集運(yùn)算,&,|
