python 學習筆記整理

2021-07-23 04:36:21 字數 3469 閱讀 3606

python中比較喜歡用in這個操作,

1. 在 for 迴圈遍歷 list  l 時,for name in l

2. 在訪問dict  r 時,可以先判斷值是否在 r 中,if  'nana' in r , 其中『nana』 是 r 中儲存的某個 key 值,r[key] 是其對應的 value 值。

3. 遍歷dict r 時,for key in d:

4. 訪問set時,'paul' in s , 如果 set  s 中有paul,返回true,否則返回false。注意set 中元素區分大小寫。

print 輸出多個值的方法:

如下,輸出多個值時,對於想直接輸出的字串,用 '' 括起來,兩個值之間用逗號,分隔。

d =

print 'adam:',d.get('adam')

print 'lisa:',d.get('lisa')

print 'bart:',d.get('bart')

dict 的三個特性:1. key 值不可重複;

2. dict 的資料是無序儲存的,list 和 tuple 的資料是有序儲存的;

3. dict 的 key 是不可變型別的,即int,string,float型別都行,但list作為key值是不可以的。

a = (1,2,3)    // a是tuple,其值不可變

s = set([1,2,3])  // s 是set,set 是無序儲存不重複的資料,可以傳入乙個list值給set,然後set過濾掉重複元素。

注意:tuple,list是有序儲存的,所以可以根據索引訪問資料,而set 是無序儲存的,不能根據索引訪問,只能判斷某個值在不在 set 中。set 和dict 的 key 很像,dict 的 key具有的特性,set 都有。

s.add(4)  // set  s中增加元素4

s.remove(4) // set s中刪除元素4

python的 

for迴圈就可以依次把list或tuple的每個元素迭代出來;

和 for 迴圈不同的另一種迴圈是 

while 

迴圈,while 迴圈不會迭代 list 或 tuple 的元素,而是根據表示式判斷迴圈是否結束。

python中遍歷 list 和 tuple 用for迴圈,格式如下:for x in args:然後對x進行處理,就是對args中的元素進行處理。tuple和list的長度,使用 len(args)判斷。當然,python和go語言的語法很相似,也可以用slice來對list和tuple進行取值。range()函式可以建立乙個數列,如:range(1, 101),則表示的是

[1, 2, 3, ..., 100]

slice切片說明:
print l[:10]  //輸出下標為0-9的資料,即前10個數

print l[2::3] //從下標為2的開始,置list結束,每3個元素輸出乙個

print l[4:50:5] //從下標為4的開始,置下標為49的前50個數,每5個元素輸出乙個

索引迭代:

python中對list和tuple的索引迭代,引入了enumerate(),該函式將list和tuple中的每個元素組裝成包含索引項和其值tuple,然後輸出:

for t in enumerate(l):

index = t[0]

name = t[1]

print index, name

由上述更明確可知,enumerate()對list和tuple的索引迭代,是轉換成tuple

[(0, 'adam'), (1, 'lisa'), (2, 'bart'), (3, 'paul')]進行處理的,因此,可以將索引迭代的**精簡為如下:

for index,name in enumerate(l):

print index,name

dict 對value值的迭代,有兩種方法:values() 和 itervalues()

那這兩個方法有何不同之處呢?

1.values()方法實際上把乙個 dict 轉換成了包含 value 的list。

2. 但是itervalues()方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節省了生成 list 所需的記憶體。

for v in d.itervalues():

print v  //即列印輸出dict的value值。

3. 列印 itervalues() 發現它返回乙個 物件,這說明在python中,for 迴圈可作用的迭代物件遠不止 list,tuple,str,unicode,dict等,任何可迭代物件都可以作用於for迴圈,而內部如何迭代我們通常並不用關心。

如果乙個物件說自己可迭代,那我們就直接用 for 迴圈去迭代它,可見,迭代是一種抽象的資料操作,它不對迭代物件內部的資料有任何要求。

迭代dict的key和value

dict的items()方法可以將dict的元素轉換成乙個包含tuple的list,然後在輸出;和values()跟itervalues()類似,items()也有相應的iteritems(),iteritems() 不把dict轉換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不占用額外的記憶體。

使用範例:

for key,value in d.iteritems():

print key, ' : ', value

列表生成式

python的列表生成利用,range()

範例1:range(1,11),生成的列表是[1,2,3,...,10]

範例2:

l =

for x in range(1,11)

,生成的列表l是[1,4,9,16,...,100]

注:範例2可以利用列表生成式生成l,此方法還簡單,如下:

[x*x  for x in range(1,11)],該方式生成的列表也是 [1,4,9,16,...,100]。總結方法為:將要生成的元素x*x 寫在最前邊,後邊跟for即可。

範例3:

輸出[1*2,3*4,5*6,...99*100]

print [x*(x+1) for x in range(1,100,2)] ,

注:range(1,100,2) 生成的列表是[1,3,5,7,...]

範例4:

在範例2基礎上的操作,可以在列表生成式之後的 for 迴圈後加 if 條件判斷,比如只要偶數的平方:

[x*x for x in range(1,11) if x % 2 == 0]

有了 if 條件,只有 if  判斷為 true 的時候,才把迴圈的當前元素加入列表。

Python學習筆記整理

前言 大四剛剛畢業,學的土木可是很喜歡程式設計,奈何進的網際網路運營崗,琢磨著轉崗,工科出身的還是想做技術。從六月份學了這麼久,不寫些部落格沉澱一下技術,感覺都忘光了,不多說了。以後詳細介紹。第一章 python資料型別 想到 寫 python這門語言我最喜歡的還是他的一致性,如果你學過其他語言,可...

《python深度學習》筆記整理

電影二分類問題 新聞多分類問題 通過分類編碼 也叫one hot 編碼 對標籤進行編碼,然後使用categorical crossentropy 作為損失函式。將標籤編碼為整數,然後使用 sparse categorical crossentropy 損失函式。波士頓房價的回歸問題在將原始資料輸入神...

Python學習過程筆記整理(一)

編碼方式 utf8編碼方式 coding utf 8 注釋 行注釋 塊注釋 或 基礎語法 print 輸出預設換行,不換行需要末尾加end 1 print a end 2 print b input 輸入 1 something input 請輸入一些文字 2print something 變數名稱...