2025-09-10:仓库迁移
This commit is contained in:
17
4.迭代器与生成器/15.合并多个有序序列,再对整个有序序列进行迭代.py
Normal file
17
4.迭代器与生成器/15.合并多个有序序列,再对整个有序序列进行迭代.py
Normal file
@@ -0,0 +1,17 @@
|
||||
import heapq
|
||||
from itertools import chain
|
||||
|
||||
if __name__ == '__main__':
|
||||
a = [1, 4, 7, 10]
|
||||
b = [2, 5, 6, 11]
|
||||
|
||||
# 首先复习一下前面的知识,如果不考虑合并后也是有序的,用chain
|
||||
for item in chain(a, b):
|
||||
print(item)
|
||||
|
||||
# 但如果我们想要得到有序合并序列,那就要用堆自带的merge功能了,利用小根堆的特殊性来排序
|
||||
new_arr = heapq.merge(a, b)
|
||||
for item in new_arr:
|
||||
print(item)
|
||||
|
||||
# 记住,heapq的merge事先不会对输入可迭代对象的有序性进行检查,而是每次从可迭代对象序列里取出最小的第一个进堆
|
Reference in New Issue
Block a user