#python
Вопрос:
Я хочу сгенерировать последовательные числа с помощью python и сохранить их в документе .txt, но я не смог сгенерировать числа в нужном мне формате.
Формат, который я хочу:
(000,000,000)
(000,000,001)
(000,000,002)
(000,000,003)
...
(000,000,100)
...
(000,001,000)
...
(001,000,000)
...
(100,000,000)
...
(255,255,255)
Примечание: числа должны быть в диапазоне от 0 до 255.
Мой код:
file = open("numbers.txt","w")
numbers = [i for i in range(256)]
file.write(numbers)
file.close()
Комментарии:
1. Вы имеете в виду все комбинации?
2. Используйте
itertools.product(range(256), repeat=3)
Ответ №1:
Вы могли бы просто сделать это с помощью трех вложенных циклов:
for a in range(256):
for b in range(256):
for c in range(256):
print("(i,i,i)" % (a,b,c))
Обратите внимание на форматирование для начальных нулей. И есть itertools
для более эффективного способа:
import itertools
for item in itertools.product(range(256), repeat=3):
print("(i,i,i)" % item)
Комментарии:
1. Давайте не будем использовать tuple в качестве имени переменной
2. Ack — это не самый умный выбор 🙂
Ответ №2:
Это сделает то, что вы хотите. Обратите внимание, что это создает довольно большой файл (существует 256 ^ 3 возможных значения, более 16 миллионов).
import itertools
with open("numbers.txt", "w") as f:
for color in itertools.product(range(256), repeat=3):
f.write("({:03d}, {:03d}, {:03d})n".format(*color))
Обратите внимание, что вы должны использовать with
диспетчер контекста блоков для чтения и записи в файлы, поскольку после этого он автоматически закрывает файлы.