摘要:定義了一個(gè)非常類似的模塊,其函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是預(yù)先定義好的類型,第二個(gè)參數(shù),一般為一個(gè)序列。很少見到代碼輸出是中實(shí)現(xiàn)堆排序的模塊。這里主要看一下優(yōu)先級(jí)隊(duì)列定義優(yōu)先級(jí)比較輸出
array
array 定義了一個(gè)非常類似list的模塊,其array 函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是預(yù)先定義好的類型,第二個(gè)參數(shù),一般為一個(gè)序列。 很少見到
代碼:
import array a = array.array("b",b"abcd") print(a) print(a[0])
輸出:
array("b", [97, 98, 99, 100]) 97heapq
heapq 是python中實(shí)現(xiàn)堆排序的模塊。
from heapq import * import random # 創(chuàng)建一個(gè)堆排序 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替換最小元素,會(huì)先執(zhí)行pop,然后replace n = heapreplace(data,100) print(n) print("執(zhí)行replace后:",data) # n個(gè)最大 / n個(gè)最小 lagest = nlargest(3,data) small = nsmallest(3,data) print("3個(gè)最大的值:",lagest) print("3個(gè)最小的值:",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個(gè)最大的值: [100, 18, 17] 3個(gè)最小的值: [4, 7, 8]queue
隊(duì)列,在線程一節(jié)有總結(jié)過(guò),有先進(jìn)先出隊(duì)列,也有優(yōu)先級(jí)隊(duì)列,隊(duì)列結(jié)合線程,可以保證線程之間通信的安全。這里主要看一下優(yōu)先級(jí)隊(duì)列
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)先級(jí)比較 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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42993.html
摘要:來(lái)源于阿賢博客模塊化今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識(shí)點(diǎn)。前端模塊化開發(fā)那點(diǎn)歷史模塊化是指在解決某個(gè)復(fù)雜混雜問(wèn)題時(shí),依照一種分類的思維把問(wèn)題進(jìn)行系統(tǒng)性的分解以之處理。 來(lái)源于:阿賢博客 javascript模塊化 今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識(shí)點(diǎn)。 前端模塊化開發(fā)那點(diǎn)歷史 模塊化: 是指在解決某個(gè)復(fù)雜、混雜問(wèn)題時(shí),依照一種分類的思維把問(wèn)題進(jìn)行系統(tǒng)性的分解以之處理。模塊...
摘要:模塊更新時(shí)部分不需被替換的模塊,檢測(cè)到或參數(shù)變化增加移除或修改參數(shù)時(shí)觸發(fā),如所有頁(yè)面的部分總是不變,此時(shí)它將不會(huì)被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學(xué)習(xí)下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動(dòng)路由 正如它的名字,模塊用于amaplejs單頁(yè)應(yīng)用的頁(yè)面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個(gè)模塊 一個(gè)模塊由標(biāo)簽對(duì)包含,內(nèi)部分為template模板...
摘要:模塊更新時(shí)部分不需被替換的模塊,檢測(cè)到或參數(shù)變化增加移除或修改參數(shù)時(shí)觸發(fā),如所有頁(yè)面的部分總是不變,此時(shí)它將不會(huì)被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學(xué)習(xí)下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動(dòng)路由 正如它的名字,模塊用于amaplejs單頁(yè)應(yīng)用的頁(yè)面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個(gè)模塊 一個(gè)模塊由標(biāo)簽對(duì)包含,內(nèi)部分為template模板...
摘要:模塊更新時(shí)部分不需被替換的模塊,檢測(cè)到或參數(shù)變化增加移除或修改參數(shù)時(shí)觸發(fā),如所有頁(yè)面的部分總是不變,此時(shí)它將不會(huì)被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學(xué)習(xí)下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動(dòng)路由 正如它的名字,模塊用于amaplejs單頁(yè)應(yīng)用的頁(yè)面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個(gè)模塊 一個(gè)模塊由標(biāo)簽對(duì)包含,內(nèi)部分為template模板...
閱讀 2140·2021-11-23 09:51
閱讀 3402·2021-09-28 09:36
閱讀 1233·2021-09-08 09:35
閱讀 1903·2021-07-23 10:23
閱讀 3382·2019-08-30 15:54
閱讀 3063·2019-08-29 17:05
閱讀 510·2019-08-29 13:23
閱讀 1366·2019-08-28 17:51