Python中的2D矩阵

时间:2015-03-20 02:54:36

标签: python matrix

我有一个要求输入的格式为

3 3

ABB

BAA

AAA

第一行输入分别表示行数(3)和列(3)。下面的行表示输入字符串,它形成3 * 3矩阵。

我尝试使用Dictionary来创建它并且能够实现它,但是使用Dictionary正确的方式或最有效的方式。有没有其他方法来创建这种形式的2D矩阵?

使用列表:

print "Enter the value of row:"
r = input()
print "Enter the value of column:"
c = input()

m=[]
for i in xrange(r):
    m.append([])
    for j in xrange(c):
        m[i].append(raw_input())
print m

输入和输出:输入行的值: 2 输入列的值: 2 ABB AAA BBB CCC
[[' ABB',' AAA'],[' BBB',' CCC']

输入和输出:输入行的值: 2 输入列的值: 2 ABB AAA BBB CCC
[[' ABB',' AAA'],[' BBB',' CCC']

我需要以下形式:

[[A,B,B],[A,A,A],[B,B,B],[C,C,C]]

1 个答案:

答案 0 :(得分:0)

以下代码为上述数据创建了一个二维列表。

f = open("data.txt")
rows_count, cols_count = f.readline().split()
line_count = 0 
list2D = []
while line_count < int(rows_count):
    line = f.readline().strip().strip("\n")
    if len(line) == 0:
        # blank line
        continue
    row = list(line)[0:int(cols_count)]
    list2D.append(row)
    line_count += 1
print list2D

输出:

[['A', 'B', 'B'], ['B', 'A', 'A'], ['A', 'A', 'A']]