1.1 Unpack a sequence: 還蠻常用的技巧, p = (1, 2): x, y = p ,也可以拿來作 swap,x, y = (y, x)
1.2 這是 1.1 的延伸應用,Unpack 可以 unpack 成 list,也就是 x, *y, z = range(10) ,但很不幸,這在 3.x 才能使用。說真的,我沒想過可以這樣用,這真的很方便。
1.3 留住最近的 5 個值:介紹 collections.deque ,這裡舉的例子是讀檔,假定你需要參考當前讀取位置的前五行,例子就巧妙地建立了 search() 函式,傳回當前行跟前五行。前五行的歷史就利用 deque 的特性-先進先出而一直保留住最近的五行。
1.4 找出最大的 5 個值或最小的 5 個值:介紹 heapq,heapq 有提供 nlargest() 與 nsmallest() 函式,可以很方便的取得。
1.5 Priority Queue: 這也是利用 heapq 模組,heapq 模組裡有 heappush/heappop 。

arrow
arrow

    elleryq 發表在 痞客邦 留言(0) 人氣()