Python 如何创建没有计数器和索引的生成器?
我正在学习Python,我对这个任务有一个问题 我们需要创建一个生成器,它接受2个非递减序列并将其组合成1个非递减序列并返回它 我通过索引和计数器解决了这项任务,但现在出现了一个新问题。如果顺序不正确,生成器将显示错误 如果你能帮我完成这项任务,我将不胜感激 这是我的密码:Python 如何创建没有计数器和索引的生成器?,python,Python,我正在学习Python,我对这个任务有一个问题 我们需要创建一个生成器,它接受2个非递减序列并将其组合成1个非递减序列并返回它 我通过索引和计数器解决了这项任务,但现在出现了一个新问题。如果顺序不正确,生成器将显示错误 如果你能帮我完成这项任务,我将不胜感激 这是我的密码: def mer(seq1, seq2): i = 0 j = 0 while i < len(seq1) and j < len(seq2): if seq1[i] <
def mer(seq1, seq2):
i = 0
j = 0
while i < len(seq1) and j < len(seq2):
if seq1[i] <= seq2[j]:
yield seq1[i]
i += 1
else:
yield seq2[j]
j += 1
while i < len(seq1):
yield seq1[i]
i += 1
while j < len(seq2):
yield seq2[j]
j += 1
#check
def x():
yield 1
yield 2
yield 3
for i in mer(x(), x()):
print(i, end=" ")
def mer(序号1、序号2):
i=0
j=0
而i 如果seq1[i]要合并预排序的序列,可以使用heapq.merge
:
from heapq import merge
def x():
yield 1
yield 2
yield 3
for i in merge(x(), x()):
print(i, end=" ")
这将产生:
1 1 2 2 3 3
你能更清楚地回答你的问题吗?如果两个序列中的任何一个都不符合顺序,那么您想引发一个错误,而不管另一个序列是什么?您能发布一个错误吗?您的代码不会运行,因为生成器(x()
)没有len
。给定输入[1,2,3]
您希望输出是什么?