【问题标题】:2D Matrix in PythonPython中的二维矩阵
【发布时间】:2015-05-23 09:28:34
【问题描述】:

我有一个输入格式的要求

3 3

ABB

BAA

AAA

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

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

使用列表:

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]]

【问题讨论】:

  • 二维列表或元组可能是更好的选择。
  • 您能提供一个示例解决方案吗...我尝试了 Lists 但无法实现。
  • 发布您尝试过的内容,我们可以从那里开始

标签: python matrix


【解决方案1】:

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

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']]

【讨论】: