簡體   English   中英

如何覆蓋先前打印語句中已打印出的數組元素?

[英]How to overwrite array elements that have already been printed out in a previous print statement?

我有一個4x4矩陣的2D數組。 我正在以格式化的形式打印數組。 現在我想添加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

如果您不想使用第三方庫,那么此代碼最適合您。 我在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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM