Python學習之字典與控制語句

2021-06-27 22:52:14 字數 2682 閱讀 5716

1.字典是python中唯一內建的對映型別,其建立格式如下:m = ,實際上字典的建立也可以通過對二元元組列表使用dict方法得到:items = [('name','gumby'),('age',42)]; d = dict(items);或者d = dict(name = 'gumby',age = 42); #結果是一致的

2.字典的主要方法類似列表方法:

len(d) #給出字典長度

d[k] #返回鍵值為k的元素值,不存在則報錯

d[k] = v #將字典d中鍵值k與值v繫結,如果k不存在則新增

del d[k] #刪除字典d中鍵值為k的元素

k in d #判斷鍵k是否包含於字典d

3.字典對於字串格式化輸出也有所助益:

>>>phonebook = ;

>>>"cecil's phone number is %(cecil)s." % phonebook

"cecil's phone number is 5623."

可以看到,在%s中間嵌入鍵值(括號括起來)就能將字典中相應的值嵌入到輸出字串中。

4.字典除了第2點提到的一些基本方法外,還有一些常用的方法:

d.clear() #將d中所有資料清除掉

c=d.copy()#淺複製,將d中的鍵值都複製過去,但鍵值所指的位置未發生變化,可將鍵值看成乙個個的子變數,這些子變數也是通過引用計數完成的,如此,當對鍵值進行賦值操作時,兩者互不干擾,但修改時,實際上是統一完成的

dc=d.deepcopy()#深度複製,完全不相干,需要from copy import deepcopy

dict.fromkeys(['name','age'],'default')#從列表給定的鍵值中建立字典,對應預設值在第二個引數給出,若忽略則預設為none

d.get('name')#獲取鍵'name'對應的值,比d['name']優秀的一點在於,當鍵值不存在時,會返回none而非報錯

d.has_key('name')#判斷此鍵是否在字典中,返回true/false

d.items(),it=d.iteritems()#分別返回列表,列表迭代器

d.keys(),it=d.iterkeys()#分別返回鍵列表,鍵列表迭代器

d.values(),it=d.itervalues()#分別返回值列表,值列表迭代器

d.pop(key)#將鍵對應的元素刪除,並返回對應的值

d.popitem()#因為字典沒有最後乙個的說法,所以隨機彈出元素

d.setdefault(key,value)#讀取key對應的值,如果key不存在或者無值,則將之設定為預設值value

d.update(d1)#將字典d1中現有項新增到字典d中,如果已經存在同名項,則覆蓋替換

5.當需要匯入兩個模組中的同名方法時,為了避免重複,在使用時要麼用模組名進行限定:import module1;import module2;module1.open();,或者對匯入的方法使用別名,from module1 import open as open1;

6.賦值語句的魔法:

x,y,z = 1,2,3 #對x,y,z分別賦值1,2,3

x,y = y,x #將x,y進行交換,可以推廣到更多個

values = 1,2,3 #結果中values變成了元組,之後x,y,z=values,則x得到了1,此稱之為序列解包,將元組元素逐個賦值,需要保證元素個數相等,否則印發異常

x=y=z #鏈式賦值

x+=2,x*=5

7.python中用縮進來區別語句塊,條件語句,選擇語句,迴圈模組均是如此

8.python中除了false,0,「」等空值會被解釋成false外,其餘值均會被解釋成真值true

9.條件語句(可巢狀縮排):

if expr:

sentence

elif expr:

sentence

else:

sentence

python中的比較運算子給出如下:x==y,xy,x>=y,x<=y,x!=y,x is y,x is not y, x in y, x not in y #not在python中表示非,and or not,is與==是不同的,==用於比較值是否相等,而is用以判斷兩變數所指是否是同一位置的記憶體,在多個表示式用邏輯運算子and,or,not連線起來時,依然與c++類似,遵循短路邏輯原則,判斷乙個就夠了的話堅決不判斷第二個表示式,此外python還支援連續判斷表示式,如x

10.python的斷言句,assert x

11.迴圈語句,格式與條件判斷語句相類似:

x=1while x<100:

sentence1

sentence2

print x

words = ['this','is','a','good','book']

for word in words:

print word #word 會自動向前進一

12.range(1,4),[1,2,3],左閉右開,相當於[1:4]的索引值,range用以將整個序列建立出來,而xrange則可以一次性只建立乙個,當序列較大時,用xrange效率更高,而range(n),相當於range(0,n)

13.對於迴圈語句而言,break,continue依然可以使用

14.python還提供了一些特殊語句:

pass #無任何作用,僅用做佔位

del x#直接將x刪除,一併刪除其占用的空間,其餘指向x的引用將不再可用

Python學習之字典

coding utf 8 字典是python中唯一內建的對映型別,鍵是唯一的值不唯一,鍵值之間用 分隔,項之間用 分隔 item name gumby age 42 print dict item 鍵可以為任何不可變的型別 x 關聯到列表上會有問題,應該先 none 43對其賦值 x 42 foob...

Python學習日記 else與with語句

上一次是針對錯誤和異常,今天從else和with語句對其進行補充 乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。處理程式將只針對對應的try子句中的異常進行處理,而不是其他的 try 的處理程式中的異常。乙個except子句可以同時處理多個異常...

python語句結構(控制語句與pass語句)

python語句結構 控制語句和pass語句 break 跳出迴圈 語句可以跳出for和while語句的迴圈體。如果你從for和while迴圈中終止,任何對應迴圈的else語塊均終止 continue 跳出本次迴圈 告訴python跳出當前迴圈塊中的剩餘語句,然後繼續下一輪的迴圈 迴圈語句可以有el...