Печать списка с указанными c разделениями - PullRequest
0 голосов
/ 22 января 2020

Я работал над небольшой программой, которая в итоге создает список из 100 случайных чисел. Я должен напечатать список в 10x10 пробелах, и, поскольку я новичок ie в коде, я не могу понять, как это сделать. Любые предложения?

может выглядеть так:

list1 = [0]*100

и конечный результат должен выглядеть так:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 22 января 2020

вам нужна только встроенная функция print:

print(*(list1[i: i + 10] for i in range(0, len(list1), 10)), sep='\n')

вывод:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

возможно код немного сложен поскольку вы пытаетесь учиться, но я постараюсь объяснить:

  • есть генератор, который разбивает ваш первоначальный список на меньшие списки из 10 элементов:

    (list1 [ i: i + 10] для i в диапазоне (0, len (list1), 10))

  • , затем я использую оператор unpack *, чтобы распаковать генератор в print arguments
  • Я разделяю каждый список новой строкой, используя sep='\n'

Более простая версия для достижения вашего конечного результата - использовать один for l oop:

for index in range(0, len(list1), 10):
    print(list1[i: i + 10])

Выход:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
0 голосов
/ 22 января 2020

Я в значительной степени решил эту проблему, по крайней мере, к моему удовлетворению, это выглядит так:

example_list = [0]*100

index_print = 0

for x in range(10):
    for y in range(10):
        print(example_list[index_print], end=' ')
        index_print += 1
    print('\n')

Может быть, я вхожу в это, и я, вероятно, тоже это сделаю, но сейчас я доволен. К сожалению, я обнаружил некоторые проблемы с моим кодом, которые я еще не решил, но это еще один вопрос. Спасибо за многочисленные ответы, не ожидал получить столько на моем первом посте!

0 голосов
/ 22 января 2020

Вы можете достичь этого с двумя циклами for. что-то вроде этого:

import random
final_list =[]
for i in range(0, 10):
    row_list = []
    for j in range(0, 10):
        row_list.append(random.randint(1, 10000))
    final_list.append(row_list)

breakdown:

  1. Вы можете использовать библиотеку с именем random для создания случайного числа. Вы можете посмотреть его документ здесь .
  2. в random.randint(1, 10000) Я дал диапазон, который является диапазоном случайных чисел. Вы можете изменить его в соответствии с вашими требованиями.
  3. , возможно, есть лучший способ сделать это, но это более понятно:)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...