我有一个要求输入的格式为
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]]
答案 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']]