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 變數名稱...