amarao (amarao_san) wrote,
amarao
amarao_san

Интересная/дурацкая задача на питоне

Задача: написать этот код идиоматически.

Суть проблемы: формат такой: строка, начинающаяся не с пробела - начало записи. Дальше сколько-то строк, начинающихся с пробелов, относящихся к этой же самой записи.

Т.е.
foo foobar
   bar
   bar
next foobar
   bar
etc

Задача - распарсить на записи, так, чтобы каждая "запись" была массивом "своих" строк (т.е. строка без начального пробела и относящиеся к ней строки с пробелом).

Я написал, но получилось подозрительно близко к C. Красивые варианты приветствуются. (в моём коде 'interface' - это запись).

        lines = raw_output.split('\n')
        current_interface = []
        for line in lines:
            if not line.strip():
                continue
            if not line.startswith(' '):
                if current_interface:
                    yield current_interface
                current_interface = []
            current_interface.append(line)
        if current_interface:
            yield current_interface
Tags: python
Subscribe

  • мы их теряем!

    Make: 1976 Прямо сейчас выходят на пенсию люди, для которых make был новомодной технологией, которую притащили хипстеры.

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments

  • мы их теряем!

    Make: 1976 Прямо сейчас выходят на пенсию люди, для которых make был новомодной технологией, которую притащили хипстеры.

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.