2010-10-29 5 views
1

У меня есть большой список списков нравятся:печать списков в файл в специальном формате, в питоне

X = [['a','b','c','d','e','f'],['c','f','r'],['r','h','l','m'],['v'],['g','j']] 

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

1. a b c d e f 
2. c f r 
3. r h l m 
4.v 
5.g j 

Мне нужно, чтобы они были написаны в этом формате в файле «текст». Может ли кто-нибудь предложить мне код для него в python? Благодаря

ответ

5
with open('somefile.txt', 'w') as fp: 
    for i, s in enumerate(X): 
    print >>fp, '%d. %s' % (i + 1, ' '.join(s)) 
+1

или 'fp.write ("{строка}. {Приговаривают} \ п" .format (строка = я, предложение =»».join (s)))', если вы не 't как синтаксис '>>' print. – katrielalex

+0

Существует небольшая проблема с этим, счетчик начинается с 2 всегда! – Hossein

+0

print >> fp, '% d. % s '% (i,' '.join (s)) i + = 1 выполнит эту работу;) – Hossein

0
with open('file.txt', 'w') as f: 
    i=1 
    for row in X: 
     f.write('%d. %s'%(i, ' '.join(row))) 
     i+=1 
+1

Вам не хватает строк. –

+0

'enumerate' есть причина. – katrielalex

+0

Я не уверен, что enumerate() создаст объект-генератор, поэтому enumerate() может взять много памяти/процессора для больших списков. Если enumerate() создаст генератор, предпочтительным может быть предыдущий пример. – seriyPS

Смежные вопросы