我有两个文件。。我使用循环法从第一个文件读取一行,从第二个文件读取第二行。

def roundrobin(*iterables):
    pending = len(iterables)
    nexts = cycle(iter(it).next for it in iterables)
    while pending:
        try:
            for next in nexts:
                yield next()
        except StopIteration:
            pending -= 1
            nexts = cycle(islice(nexts, pending))

然后:
c= roundrobin(a, b)

a和b是单子。如何进行循环排序?.. 我试着用
c.sort()

但错误是
AttributeError:“generator”对象没有“sort”属性
我需要根据第一列的元素对c进行排序(d/M/Y)

最佳答案

如错误所示,生成器没有sort方法。相反,您可以通过内置的sorted来耗尽一个生成器,它接受一个iterable作为输入。下面是一个简单的例子:

def randoms(n):
    import random
    for _ in range(n):
        yield random.randint(0, 10)

res = sorted(randoms(10))  # [1, 2, 4, 5, 6, 6, 6, 7, 8, 10]
res = randoms(10).sort()   # AttributeError: 'generator' object has no attribute 'sort'

关于python - AttributeError:生成器对象没有属性“sort”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52775382/

10-11 06:22