Как вывести в файл значение списка
Есть код, он создаёт список 23x13 значений. Надо данные значения вывести в файл.
Вот сам код:
from math import sqrt
from random import randint
n = 1
m = 6
grid = [[randint(n, m) for j in range(23)] for i in range(13)]
f = open('Values_for_the_passage_map.txt', 'w')
# Данная строчка должна вписывать список grid в файл.
f.close()
Подскажите, пожалуйста, как это сделать? На форумах обычно либо обычный текст выводят, либо совсем другое строение кода с меньшим значением списка, и через цикл.
Ответы (2 шт):
Автор решения: Medvedev
→ Ссылка
Переменная grid
у вас типа list
, а в файл можно записывать данные типа str
.
То есть, что бы сменить тип данных:
f.write(str(grid)) # не '', а str делает весь список строкой
Но в вашем случае идеальным решением будет перебрать весь список и красиво с отступами внести данные в файл:
for g in grid:
f.write(str(g) + '\n')
Автор решения: чистов_n
→ Ссылка
Можно с помощью модуля json
:
...
import json
...
И далее используем функцию json.dump
:
...
f = open('Values_for_the_passage_map.txt', 'w')
json.dump(grid, f) # <--
f.close()
Подробнее про json.dump
в документации.