Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建没有计数器和索引的生成器?_Python - Fatal编程技术网

Python 如何创建没有计数器和索引的生成器?

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] <

我正在学习Python,我对这个任务有一个问题

我们需要创建一个生成器,它接受2个非递减序列并将其组合成1个非递减序列并返回它

我通过索引和计数器解决了这项任务,但现在出现了一个新问题。如果顺序不正确,生成器将显示错误

如果你能帮我完成这项任务,我将不胜感激

这是我的密码:

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]
您希望输出是什么?