就地打印和更新矩阵

时间:2013-05-14 19:03:39

标签: python curses urwid

我有一个矩阵表示为列表列表(但如果它有帮助,可以很容易地改变这种表示)。我将在程序运行时更新此矩阵。我想以某种标准方式在屏幕上显示矩阵。像

这样的东西

enter image description here

我希望这个显示在程序运行时更新。

例如,

def updatematrix():
#Change some entries in the matrix

A = [[3,2,3],[1,2,1],[2,8,6]]
while(True):
    updatematrix()
    display(A) #This would ideally change the display in place.

这样做的好方法是什么? (事实上​​,我将更改整个列和行,并最终希望使更改的行/列具有不同的颜色。)

我很高兴使用任何可能有用的免费库。

2 个答案:

答案 0 :(得分:4)

我建议使用curses库,它是标准python库的一部分 http://docs.python.org/2/library/curses.html

我已经包含了一些被黑客攻击的例子

import curses
import time

mywindow = curses.initscr()

matrix = [[3,2,3],[1,2,1],[2,8,6]]

def updateMatrix(m):
    m[1][1] = m[1][1] * 2
    return m

def getMarixString(m):
    x = ''
    for row in m:
        x += ' '.join(str(item) for item in row)
        x += "\n"
    return x

z = 10
while z > 1:
    matrix = updateMatrix(matrix)
    mywindow.addstr(0,0, getMarixString(matrix))
    mywindow.refresh()
    z -= 1
    time.sleep(3)

curses.endwin()
quit()

答案 1 :(得分:-1)

可以进行矩阵计算,不确定颜色部分。您可能希望查看Numpy数组和操作,具体取决于您将在updatematrix中执行的操作(),http://www.scipy.org/Numpy_Functions_by_Category