Я пробовал способы преобразования списка в строки, как это было найдено в других вопросах, но результат, похоже, не является тем, что я должен получить. У меня есть вход [['This','is','here.'],['Second','sentence','here.']]
И я хотел бы преобразовать это в строку и сохранить в текстовый файл с выходом:
This is here.
Second sentence here.
что я сделал,
list = [['This','is','here.'],['Second','sentence','here.']]
with open(outfile, 'w') as newfile:
newfile.write(str('\n'.join((str(i) for i in list))))
Результатом этого в файле.txt является:
['This', 'is', 'here.']
['Second', 'sentence', 'here.']
Помощь очень ценится. Спасибо!
Вы можете попробовать lst = '\n'.join(' '.join(i) for я in txt)
(Также полезно использовать имя переменной, отличное от list
):
txt = [['This','is','here.'],['Second','sentence','here.']]
with open(outfile, 'w') as newfile:
lst = '\n'.join(' '.join(i) for i in txt)
newfile.write(lst)
Похоже, что в элементе списка нет None
, вы можете отфильтровать их, как описано в другом ответе, и использовать следующее:
txt = [['This','is','here.'],['Second','sentence','here.'], ['Here',None, 'is']]
lst = '\n'.join(' '.join(list(filter(None.__ne__, i))) for i in txt)
print(lst)
Результат:
This is here.
Second sentence here.
Here is
Как было предложено в комментариях ниже, просто добавление дополнительных результатов синхронизации для сравнения filter
с list comprehension
в этом случае, а list comprehension
выполняется быстрее:
%%timeit
txt = [['This','is','here.'],['Second','sentence','here.'], ['Here',None, 'is']]
lst = '\n'.join(' '.join(list(filter(None.__ne__, i))) for i in txt)
# Result: 100000 loops, best of 3: 4.52 µs per loop
%%timeit
txt = [['This','is','here.'],['Second','sentence','here.'], ['Here',None, 'is']]
lst = '\n'.join(' '.join(([j for j in i if j != None])) for i in txt)
# Result: 100000 loops, best of 3: 3.28 µs per loop
Вы можете использовать str.join
для преобразования списка в строки
>>> l=[['This','is','here.'],['Second','sentence','here.']]
>>> print ('\n'.join([' '.join(e) for e in l]))
This is here.
Second sentence here.
>>>