python , 順序迭代合併後的list物件

2022-03-15 15:36:55 字數 729 閱讀 7452

有一系列排序序列,想將它們合併後得到乙個排序序列並在上面迭代遍歷

heapq.merge() 函式可以幫你解決這個問題。比如:

>>> import heapq

>>> a = [1, 4, 7, 10]

>>> b = [2, 5, 6, 11]

>>> for c in heapq.merge(a, b):

... print(c)

...124

56710

11

heapq.merge 可迭代特性意味著它不會立馬讀取所有序列。這就意味著你可以在非常長的序列中使用它,而不會有太大的開銷。比如,下面是乙個例子來演示如何合併兩個排序檔案:

with open('sorted_file_1', 'rt') as file1, \

open('sorted_file_2', 'rt') as file2, \

open('merged_file', 'wt') as outf:

for line in heapq.merge(file1, file2):

outf.write(line)

有一點要強調的是heapq.merge() 需要所有輸入序列必須是排過序的。特別的,它並不會預先讀取所有資料到堆疊中或者預先排序,也不會對輸入做任何的排序檢測。它僅僅是檢查所有序列的開始部分並返回最小的那個,這個過程一直會持續直到所有

輸入序列中的元素都被遍歷完。

python迭代 python的迭代

好的,今天仔細想想,我昨天那篇文章好像講的都是廢話,因為現在還在學基礎,講網路爬蟲好像不太合適,儘管只是講乙個大概。好的,今天我們繼續來學習python基礎語法,python的迭代。在上上篇文章中,我們講了for迴圈,然後我們提到了迭代這個概念,意思就是說從頭數到尾,嗯,就這麼簡單。我們今天主要是要...

順序表的合併

順序表的合併 順序表的合併 include include define max 20 用typedef宣告新型別名sequencelist,代表乙個結構體型別,可用新型別名去定義變數 命名乙個新的型別名sequencelist來代表結構體型別 typedef struct sequencelist...

順序表的合併(C )

把兩個無序表合成乙個有序表 例如 把la和lb合成lc。la 1,5,2,3,9 lb 6,8,4,7 lc 1,2,3,4,5,6,7,8,91.設兩個無序表為la和lb,因為順序表是無序的,而且順序表難以直接排序,所以我先把la和lb弄成陣列a和陣列b,因為陣列排序十分容易,可以直接採用內建的a...