Python常用模組之json、pickle、random、hashlib、collections

來源:互聯網
上載者:User

標籤:結構   簡單的   pytho   choice   lib   ges   list   多次   參數   

1、json和pickle

json用於字串和Python資料類型間進行轉換
pickle用於python特有的類型和python的資料類型間進行轉換
json和pickle均提供了四種方法dumps,dump,loads,load

##jsondumps()   ##轉換成字串loads()   ##將json編碼的字串再轉換為python的資料結構dump()    ##轉換成字串並存儲存到檔案中load()    ##從資料檔案中讀取資料,並將json編碼的字串轉換為python的資料結構>>> print(json.dumps([‘aa‘, ‘bb‘, ‘cc‘]))["aa", "bb", "cc"]>>> print(json.loads(‘["aa", "bb", "cc"]‘))[‘aa‘, ‘bb‘, ‘cc‘]##pickledumps()   ##將資料通過特殊的形式轉換為只有python語言認識的字串loads()   ##將pickle資料轉換為python的資料結構dump()    ##將資料通過特殊的形式轉換為只有python語言認識的字串,並寫入檔案load()    ##從資料檔案中讀取資料,並轉換為python的資料結構>>> print(pickle.dumps([‘aa‘, ‘bb‘, ‘cc‘]))b‘\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.‘>>> print(pickle.loads(b‘\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.‘))[‘aa‘, ‘bb‘, ‘cc‘]

 

2、random
random.random()           ##0~1之間的隨機小數random.uniform(1,3)       ##1~3之間的隨機小數random.randint(1,5)       ##[1,5]之間的隨機整數random.randrange(1,10,2)  ##[1,10) 之間隨機奇數,間隔為2的數random.choice([1,‘23‘,[4,5]])    ##隨機播放一個返回random.sample([1,‘23‘,[4,5]],2)  ##隨機播放多個返回,返回的個數為函數的第二個參數random.shuffle([1,3,5,7,9])  ##打亂列表順序##返回驗證碼import randomdef v_code():    code = ‘‘    for i in range(5):        num=random.randint(0,9)        alf=chr(random.randint(65,90))        add=random.choice([num,alf])        code="".join([code,str(add)])    return codeprint(v_code())

 

3、hashlib

hashlib提供了常見的摘要演算法,如MD5,SHA1等等。

##md5計算md5 = hashlib.md5("key".encode("utf8"))   ##可以添加秘鑰,秘鑰可以是使用者id,這樣就算密碼相同,加密後的md5也是不一樣的md5.update(b‘love fly‘)print(md5.hexdigest())##SHA1sha1 = hashlib.sha1("key".encode("utf8"))sha1.update(b‘love fly‘)print(sha1.hexdigest())##計算MD5>>> import hashlib>>> md5 = hashlib.md5()>>> md5.update(b‘love fly‘)>>> print(md5.hexdigest())61976ec704dbce25ccb37ecacef1e4d6##如果資料量很大,可以分塊多次調用update(),最後計算的結果是一樣的>>> import hashlib>>> md5 = hashlib.md5()>>> md5.update(b‘love‘)>>> md5.update(b‘ fly‘)>>> print(md5.hexdigest())61976ec704dbce25ccb37ecacef1e4d6

 

4、collections

ollections是Python內建的一個集合模組,提供了許多有用的集合類,是python對預設資料結構的一種補充

##namedtuple是一個函數,它用來建立一個自訂的元組對象,並且規定了元組元素的個數,並可以用屬性而不是索引來引用元組的某個元素。>>> from collections import namedtuple>>> colltuple = namedtuple(‘colltuple‘, [‘x‘,‘y‘])>>> col = colltuple(‘yong‘,‘fly‘)>>> col.x‘yong‘>>> col.y‘fly‘在內建資料類型(dict、list、set、tuple)的基礎上,collections模組還提供了幾個額外的資料類型:Counter、deque、defaultdict、namedtuple和OrderedDict等。1.namedtuple: 產生可以使用名字來訪問元素內容的tuple2.deque: 雙端隊列,可以快速的從另外一側追加和推出對象3.Counter: 計數器,主要用來計數4.OrderedDict: 有序字典5.defaultdict: 帶有預設值的字典##deque: list插入和刪除元素很慢,資料量大的時候,插入和刪除效率很低。deque是為了高效實現插入和刪除操作的雙向列表,適合用於隊列和棧。>>> from collections import deque>>> q = deque([‘a‘,‘b‘,‘c‘])>>> q.append(‘d‘)       ##預設添加列表最後一項>>> q.appendleft(‘e‘)   ##添加到列表第一項>>> qdeque([‘e‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘])>>> q.pop()             ##預設刪除列表最後一個元素‘d‘>>> q.popleft()         ##刪除列表的第一個元素‘e‘>>> qdeque([‘a‘, ‘b‘, ‘c‘])##defaultdict使用字典時,如果引用的Key不存在,就會拋出 KeyError,如果希望key不存在時,返回一個預設值,就可以用 defaultdict.     X=defaultdict(lambda: ‘N/A‘)##OrderedDict有序字典的應用。OrderedDict 的有序性是按照插入的順序,而不是KEY的順序。##Counter簡單的計數器,例如,統計字元出現的個數。

 

Python常用模組之json、pickle、random、hashlib、collections

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.