Как перезаписать элементы массива, которые уже были распечатаны в предыдущем операторе печати? - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть двумерный массив матрицы 4х4. Я печатаю массив в отформатированном виде. Теперь я хочу добавить время ожидания, скажем, 1 сек, а затем для двух элементов в массиве (я знаю индекс) хочу перезаписать эти два элемента значениями в одном и том же отпечатке.

Я попытался добавить end = "\ r" и затем обновить элементы массива, но это не помогает. Он все еще печатает новый массив под предыдущей печатью.

print('\n'.join(['\t'.join([str(cell) for cell in row]) for row in duplicate_array]), end = "\r")
time.sleep(1)
duplicate_array[0] = 0
duplicate_array[1] = 1
print('\n'.join(['\t'.join([str(cell) for cell in row]) for row in duplicate_array]))

Ожидаемый результат -

a  a  2  3  
4  5  6  a  
8  9  10 11  
12 13 14 15  

Сначала я хочу отобразить вышеуказанный массив, а затем по прошествии 1 секунды хочу просто перезаписать элементы, у которых значение равно «a», соответствующими индексами. В этом случае 0 и 1.

Через 1 сек массив станет -

0  1  2  3
4  5  6  7
8  9  10 11
12 13 14 15

Я не хочу перезаписывать весь массив, только элементы в 0 и 1. Таким образом, пользователь видит, что меняются только эти элементы, а не весь массив.

Фактический вывод с кодом, который у меня есть -

a   a   2   3
4   5   6   7
8   9   10  11
a   a   2   34  15
4   5   6   7
8   9   10  11
12  13  14  15

1 Ответ

0 голосов
/ 21 апреля 2019

, если вы не хотите использовать сторонние библиотеки, поэтому этот код является для вас лучшей практикой.я получил ожидаемый результат на Windows

import os, time


array = [['a','a' ,'2', '3'], ['4',  '5',  '6',  'a'], ['12', '13', '14', '15']]

print('\n'.join(['\t'.join([str(cell) for cell in row]) for row in array]), end = "\r")

time.sleep(2)

array[0][0] = '0'
array[0][1] = '1'
array[1][3] = '7'

os.system('cls')

print('\n'.join(['\t'.join([str(cell) for cell in row]) for row in array]), end = "\r")

input()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...