我对python很新,不知道我在做什么,但我正在尝试学习,因为这是我过去用C,C ++和Cocoa所做的。
我正在编写一个带矩阵的程序。我想计算x的出现次数(x是我矩阵中的一个值。)当我尝试这样做时虽然我不确定我得到了什么。我正在寻找一个很好的解释,我正在获得什么以及如何用矩阵做事。最后我还想使用matrix.insert,matrix.tofile和matrix.remove命令。任何形式的帮助表示赞赏。
这是我的代码:
matrix = [
[2, 9, 7, 5, 8, 9, 2, 4, 6],
[8, 1, 1, 8, 4, 7, 5, 1, 3],
[5, 5, 7, 7, 9, 3, 8, 1, 5],
[1, 7, 8, 8, 2, 6, 4, 5, 9],
[3, 8, 6, 3, 1, 7, 4, 9, 6],
[9, 5, 4, 5, 9, 4, 2, 2, 3],
[1, 2, 5, 9, 7, 9, 6, 1, 1],
[7, 5, 8, 3, 2, 6, 9, 1, 5],
[3, 1, 9, 6, 7, 8, 5, 3, 4],
]
for sublist in matrix:
S = str(sublist)
print (S)
for row in matrix:
A = row.count(0)
B = row.count(1)
C = row.count(2)
D = row.count(3)
E = row.count(4)
F = row.count(5)
G = row.count(6)
H = row.count(7)
I = row.count(8)
J = row.count(9)
print (A)
for row in matrix:
if A > 0:
if B < 1:
print (B)
这是我运行程序时得到的结果:
[2, 9, 7, 5, 8, 9, 2, 4, 6]
[8, 1, 1, 8, 4, 7, 5, 1, 3]
[5, 5, 7, 7, 9, 3, 8, 1, 5]
[1, 7, 8, 8, 2, 6, 4, 5, 9]
[3, 8, 6, 3, 1, 7, 4, 9, 6]
[9, 5, 4, 5, 9, 4, 2, 2, 3]
[1, 2, 5, 9, 7, 9, 6, 1, 1]
[7, 5, 8, 3, 2, 6, 9, 1, 5]
[3, 1, 9, 6, 7, 8, 5, 3, 4]
0
0
0
0
0
0
0
0
0
谢谢!
答案 0 :(得分:4)
你不是在这里得到一个“矩阵”,它实际上是一个列表列表。
您从for row in matrix
区块获得的是特定号码发生的次数,首次说9
。除了出现0
之外,您还没有打印任何其他值。
list.insert(i, v)
将允许您在特定索引v
处添加新值i
。如果您想在列表中的其他元素之前或之后插入某些内容,这将非常有用。
没有list.tofile()
方法;您必须将每个单独的行写入文件。您应该查看文件对象,以及如何在Python文档中写入文件。
list.remove(v)
将删除列表中v
的第一次出现。
在您的上一个for row in matrix
区块中,不会打印任何内容;变量A
到J
仅将本地化到前一个循环块。您可以通过将两个语句添加到上一个循环的末尾来进行调整,如下所示:
for row in matrix:
A = row.count(0)
B = row.count(1)
C = row.count(2)
D = row.count(3)
E = row.count(4)
F = row.count(5)
G = row.count(6)
H = row.count(7)
I = row.count(8)
J = row.count(9)
print (A)
if A > 0:
if B < 1:
print (B)
如果您有兴趣了解更多列表,则应仔细阅读documentation,并查看一些教程。还有一些免费的电子书 - 其中一个是Dive into Python 3 - 这是一个很好的资源。