Как вывести в файл значение списка

Есть код, он создаёт список 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 в документации.

→ Ссылка