AttributeError: у объекта генератора нет атрибута 'sort'

1

У меня есть два файла. Я использую round robin для чтения строки из первого файла и второй строки из второго файла.

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)

Теги:
sorting
iterator
generator

1 ответ

4
Лучший ответ

Как показывает ошибка, генераторы не имеют метода sort. Вы можете вместо этого вывести генератор через встроенную sorted, которая принимает итерабельность как вход. Здесь тривиальный пример:

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'
  • 1
    Спасибо! это работает окончательно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню