AttributeError:生成器对象没有属性“ sort”

时间:2018-10-12 08:29:26

标签: python sorting iterator generator

我有两个文件..我使用循环读取第一个文件中的一行,第二个文件中的第二行。

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:“发电机”对象没有属性“排序”

我需要根据第一列(d / M / Y)的元素对c进行排序

1 个答案:

答案 0 :(得分:5)

如错误所示,生成器没有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'