国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

4-array/heapq/queue模塊

forrest23 / 1409人閱讀

摘要:定義了一個非常類似的模塊,其函數(shù)接受兩個參數(shù),第一個參數(shù)是預(yù)先定義好的類型,第二個參數(shù),一般為一個序列。很少見到代碼輸出是中實現(xiàn)堆排序的模塊。這里主要看一下優(yōu)先級隊列定義優(yōu)先級比較輸出

array

array 定義了一個非常類似list的模塊,其array 函數(shù)接受兩個參數(shù),第一個參數(shù)是預(yù)先定義好的類型,第二個參數(shù),一般為一個序列。 很少見到
代碼:

import array

a = array.array("b",b"abcd")
print(a)
print(a[0])

輸出:

array("b", [97, 98, 99, 100])
97
heapq

heapq 是python中實現(xiàn)堆排序的模塊。

from heapq import *
import random
# 創(chuàng)建一個堆排序
data = []
for i in range(10):
    heappush(data,random.randint(1,20))

print(data)

# 使用 heappop 移除最小的元素
small_num = heappop(data)
print(small_num)
print("pop移除最小元素后: ",data)
# 使用heapreplace替換最小元素,會先執(zhí)行pop,然后replace
n = heapreplace(data,100)
print(n)
print("執(zhí)行replace后:",data)

# n個最大 / n個最小
lagest = nlargest(3,data)
small = nsmallest(3,data)

print("3個最大的值:",lagest)
print("3個最小的值:",small)

輸出

[2, 3, 8, 7, 4, 18, 12, 17, 16, 13]
2
pop移除最小元素后:  [3, 4, 8, 7, 13, 18, 12, 17, 16]
3
執(zhí)行replace后: [4, 7, 8, 16, 13, 18, 12, 17, 100]
3個最大的值: [100, 18, 17]
3個最小的值: [4, 7, 8]
queue

隊列,在線程一節(jié)有總結(jié)過,有先進先出隊列,也有優(yōu)先級隊列,隊列結(jié)合線程,可以保證線程之間通信的安全。這里主要看一下優(yōu)先級隊列

from queue import PriorityQueue
import threading
import functools
Q = PriorityQueue()

@functools.total_ordering
class Job:
    def __init__(self,priority,desc):
        self.priority = priority
        self.desc = desc
        return 
    # 定義優(yōu)先級比較
    def __eq__(self,other):
        try:
            self.priority == other.priority
        except AttributeError as e:
            return NotImplemented
    
    def __lt__(self,other):
        try:
            self.priority < other.priority
        except AssertionError:
            return NotImplemented

def worker():
    while not Q.empty():
        item = Q.get()
        import time 
        time.sleep(1)
        print(item.desc)
    
    Q.all_tasks_done


if __name__ == "__main__":
    Q.put(Job(3,"mid job"))
    Q.put(Job(10,"important job"))
    Q.put(Job(1,"low job"))
    ts = [threading.Thread(target=worker),threading.Thread(target=worker)]
    for t in ts:
        t.start()
    
    t.join()

輸出

important job
mid job
low job 

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42993.html

相關(guān)文章

  • 前端模塊化開發(fā)

    摘要:來源于阿賢博客模塊化今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識點。前端模塊化開發(fā)那點歷史模塊化是指在解決某個復(fù)雜混雜問題時,依照一種分類的思維把問題進行系統(tǒng)性的分解以之處理。 來源于:阿賢博客 javascript模塊化 今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識點。 前端模塊化開發(fā)那點歷史 模塊化: 是指在解決某個復(fù)雜、混雜問題時,依照一種分類的思維把問題進行系統(tǒng)性的分解以之處理。模塊...

    tianhang 評論0 收藏0
  • 【Amaple教程】2. 模塊

    摘要:模塊更新時部分不需被替換的模塊,檢測到或參數(shù)變化增加移除或修改參數(shù)時觸發(fā),如所有頁面的部分總是不變,此時它將不會被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學(xué)習(xí)下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動路由 正如它的名字,模塊用于amaplejs單頁應(yīng)用的頁面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個模塊 一個模塊由標簽對包含,內(nèi)部分為template模板...

    weizx 評論0 收藏0
  • 【Amaple教程】2. 模塊

    摘要:模塊更新時部分不需被替換的模塊,檢測到或參數(shù)變化增加移除或修改參數(shù)時觸發(fā),如所有頁面的部分總是不變,此時它將不會被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學(xué)習(xí)下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動路由 正如它的名字,模塊用于amaplejs單頁應(yīng)用的頁面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個模塊 一個模塊由標簽對包含,內(nèi)部分為template模板...

    付倫 評論0 收藏0
  • 【Amaple教程】2. 模塊

    摘要:模塊更新時部分不需被替換的模塊,檢測到或參數(shù)變化增加移除或修改參數(shù)時觸發(fā),如所有頁面的部分總是不變,此時它將不會被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學(xué)習(xí)下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動路由 正如它的名字,模塊用于amaplejs單頁應(yīng)用的頁面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個模塊 一個模塊由標簽對包含,內(nèi)部分為template模板...

    OBKoro1 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<