Python隨學隨記(2) 數字 對映與集合

2021-07-15 12:45:40 字數 3676 閱讀 2583

整型:

布林型(只有兩個值的整型)、標準整型、長整型

雙精度浮點型:佔8個位元組,帶小數點和e(科學計數法可選)

複數長整型型別是標準整型型別的超集,能表達的數值與記憶體大小相關(遠大於其它語言的長整型)

運算元自動轉換為同型別的內建函式:coerce()[在python3中已棄]位操作符(只用於整型):取反~num、與&、或|、異或^、左移<<、右移>>數字型別轉換函式(工廠函式):int()long()float()complex()bool()功能函式:abs()divmod(x,y)pow(x,y,mod)(主要用於密碼運算)round(x,n)僅整型的內建函式:hex()oct()chr(num)ord(chr)unichr(num)沒有__nonzero__()方法的物件預設值是true常用處理數值的模組:decimal、array、math/cmath、operatorrandom

第三方模組:numeric(numpy)、scipy

random模組:randint(n1,n2)、uniform(n1,n2)、random()、choice(order)、randrange(引數同range)對映型別物件(字典)裡雜湊值(鍵key)和指向的物件(值value)是一對多的關係(但不允許乙個鍵對應多個值)

字典型別與序列型別容器區別是儲存和訪問資料的方式不同:

前者可用其他物件型別做鍵(與儲存的資料值相關聯,無序),

序列型別用有序的數字鍵做索引將資料以陣列的形式儲存,索引值與資料無關

雜湊表是一種資料結構:儲存的資料叫(value), 是根據與他相關的乙個被稱作鍵(key)的資料項進行儲存的

雜湊表的演算法是獲取鍵,對鍵執行乙個叫做雜湊函式的操作,根據計算結果在資料結構的某個位址中來儲存你的值

雜湊表一般有很好的效能, 因為用鍵查詢相當快

dict.fromkeys(序列, value):生成乙個以序列的元素作為鍵,所有的值為value,長度為len(序列)的字典

獲得鍵/值列表:keys()/values(), 兩者都有用items(); 只用字典名可以進行迭代

兩種新增字典鍵值的方法:字典[鍵] = 值字典 =檢查字典是否存在某鍵:成員操作符(in)、has_key()# 推薦用前者 後者將被棄用

如果乙個物件在自己的生命週期中有一雜湊值(hash value)是不可改變的,那麼它就是可雜湊的(hashable)

因為這些資料結構內建了雜湊值,每個可雜湊的物件都內建了__hash__方法

python中所有不可改變的的物件(imutable objects)都是可雜湊的

我們使用者所定義的類的例項物件預設是可雜湊的(hashable),它們都是唯一的,而hash值也就是它們的id()用字典引數可以簡化print語句:print "good %(key)s" % dict字典比較演算法:先比長短然後比鍵 再比值

dict():接收乙個可迭代物件裡面的元素必須成對出現(第乙個元素是鍵, 另乙個是值, 如二元組) # 這時zip派上用場

如果是另乙個對映物件, 則對其進行淺拷貝(相當於dict的bif:copy(), 但速度沒它快)

還可接收字典或關鍵字引數字典(類似dict(a=1, b=2))

hash():可以判斷某個物件是否可以做乙個字典的值

若用比較操作符發現兩者雜湊值相等,即使兩者的資料型別不同,它們的雜湊值也相同(值相等的不同數字型別)

字典常用bif:

dict.clear() dict.copy() dict.fromkeys() dict.get(k, def) dict.has_key()[成員操作符代之]

dict.items() dict.keys() dict.values() dict.pop(k, def) dict.setdefault(k, def)

dict.update(dict2) dict.iter*()[iteritems, iterkeys, itervalues]對字典用sorted()返回乙個有序的由字典鍵作為元素的列表keys/items/values()返回的是列表,iterkeys/iteritems/itervalues()返回惰性賦值的迭代器集合有兩種不同的型別:可變集合(set,用set())和不可變集合(frozenset, 用frozenset())不可變集合可雜湊set常用方法:add() update() remove() discard()[remove的友好操作] pop() clear()集合型別操作符:

成員關係(in) 是否等價(==) 子集/超集(< >)

聯合|(即or,union()) 交集&(即and,intersection())

相對補集-(difference()) 對稱差分^(symmetric_difference())

當用操作符時,操作符兩邊的運算元必須是集合,在使用內建方法時,物件也可以是迭代型別

Linux Vim 隨用隨學隨記錄

一般模式 複製 yy 游標向上 k,10k 向上10行 游標向下 j,10j 向下10行 游標向左 h,5h 向前5行 游標向右 l,5l 向後5行 向下翻半頁 ctrl d ctrl down 向上翻半頁 ctrl u ctrl up 整頁上翻 ctrl d ctrl down 向上翻半頁 ctr...

Python隨學隨記(6) 錯誤與異常處理

異常 因為程式出現了錯誤而在正常控制流以外採取的行為,行為階段 觸發異常 檢測 採取措施 常見異常 nameerrorzerodivisionerrorsyntaxerror indexerror keyerrorioerrorattributeerrortry except else 一般用法,若...

Python隨學隨記(4) 條件和迴圈

語句 if else elif while for break continue pass懸掛else問題 在c中else與最近的if搭配,就會容易產生問題,而python中因為強制縮排,所以不會有這問題 elif常可以用序列和成員關係符進行簡化 更優雅 利用字典 使用對映物件的乙個最大好處是它的搜...