записать список кортежей списков в текстовый файл - PullRequest
1 голос
/ 07 марта 2012

Мои данные результата находятся в списке кортежей, у каждого из которых есть список:

[(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L', 'M', 'N']),
 ...
 (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L', 'M', 'N'])]

Каков наилучший способ убрать все вложения и кавычки и записать A: N в файл с разделителями табуляции?

Ответы [ 2 ]

4 голосов
/ 07 марта 2012

Кавычки не являются частью строки, они обозначают строку.Вы не сможете удалить их.

Модуль csv делает это довольно простым:

import csv, itertools
with open('file.csv', 'wb') as f:
    writer = csv.writer(f, delimiter="\t")
    writer.writerows(list(itertools.chain(*t)) for t in results)

В результате получается файл, в котором каждая строка соответствует кортежу, а строка содержит буквыобоих списков, разделенных вкладками.

0 голосов
/ 07 марта 2012

Рекурсивный - естественный способ решения этой проблемы.

пусть target будет вашим списком [([A, B ..]), ([A, B])]

def dump(target):
    for obj in target:
    if isinstance(obj,tuple) or isinstance(obj, list):
        dump(obj)
    else:
        print(obj),

dump(target)
print()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...