Как избежать создания ненужных списков?

blackmore5 спросил: 14 ноября 2017 в 06:58 в: python

Я все время сталкиваюсь с ситуациями, когда я извлекаю некоторую информацию из файла или чего-то еще, а затем вынужден массировать данные до конечной желаемой формы за несколько шагов. Например:

def insight_pull(file):
    with open(file) as in_f:
        lines = in_f.readlines()        dirty = [line.split('    ') for line in lines]
        clean = [i[1] for i in dirty]
        cleaner = [[clean[i],clean[i + 1]] for i in range(0, len(clean),2)]
        cleanest = [i[0].split() + i[1].split() for i in cleaner]        with open("Output_File.txt", "w") as out_f:
            out_f.writelines(' '.join(i) + '\n' for i in cleanest)

Как в приведенном выше примере:

    # Pull raw data from file splitting on '   '.
    dirty = [line.split('    ') for line in lines]    # Select every 2nd element from each nested list.
    clean = [i[1] for i in dirty]    # Couple every 2nd element with it's predecessor into a new list.
    cleaner = [[clean[i],clean[i + 1]] for i in range(0, len(clean),2)]    # Split each entry in cleaner into the final formatted list.
    cleanest = [i[0].split() + i[1].split() for i in cleaner]

Поскольку я не могу поместить все правки в один строка или цикл (так как каждое редактирование зависит от редактирования перед ним), есть ли лучший способ структурировать код, подобный этому?

Извинения, если вопрос немного расплывчатый. Любой вклад очень ценится.


0 ответов