Python強化訓練筆記(七)——使用deque隊列以及將對象儲存為檔案,

來源:互聯網
上載者:User

Python強化訓練筆記(七)——使用deque隊列以及將對象儲存為檔案,

collections模組中的deque對象是一個隊列,它有著正常隊列的先進先出原則。我們可以利用這個對象來實現資料的儲存功能。

例如,現有一個猜數字大小的遊戲,系統開始會隨機roll點一個0~100的整數,然後鍵盤開始接收你的輸入,每次輸入的數字系統會告訴你比這個隨機數大還是小,直到你猜對了程式才會結束。如這樣:

代碼見:

from collections import dequefrom random import randintN = randint(0, 100)history = deque([], 5)def guess(k):    if k == N:        print "right"        return True    if k < N:        print "%s is less-than N" % k    if k > N:        print "%s is greater-than N" % k    return Falsewhile True:    line = raw_input("please input a number:")    if line.isdigit():        k = int(line)        history.append(k)        if guess(k):            break    elif line == "history" or line == "h?":        print list(history)

在這裡我們使用了這個deque對象,它記錄下了我們上次的輸入曆史,便於我們記憶從而避免重複猜測。

deque([], 5)

deque這裡接受兩個參數,第一個為隊列的初值,第二個指定儲存空間。這裡指定長度為5,超出5個長度後,第一個數出去,最新的數進入。

>>> d = deque([], 5)>>> d.append(1)>>> d.append(2)>>> d.append(3)>>> d.append(4)>>> d.append(5)>>> ddeque([1, 2, 3, 4, 5], maxlen=5)>>> d.append(6)>>> ddeque([2, 3, 4, 5, 6], maxlen=5)
儲存對象

對於上面的隊列d,我們希望儲存下來,下次程式重啟還可以使用,可以使用pickle模組。

儲存
>>> import pickle
>>> s = [1, 2, 3, 4, 5]>>> pickle.dump(s, open('object', 'w'))>>> # 這樣就將s對象存在了object這個檔案中,並且這個檔案有一個寫入權限
匯入
>>> import pickle>>> s = pickle.load('object')>>> s[1, 2, 3, 4, 5]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.