Python row.count错误 我对Python很陌生,不知道我在做什么,但是我正努力学习我的程序,因为这是我过去用C、C++和COCOA所做的。p>

Python row.count错误 我对Python很陌生,不知道我在做什么,但是我正努力学习我的程序,因为这是我过去用C、C++和COCOA所做的。p>,python,Python,我正在用矩阵写一个程序。我想计算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,

我正在用矩阵写一个程序。我想计算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)

谢谢大家!

这里并不是一个“矩阵”,它实际上是一个列表列表

您从矩阵中行的
中得到的是特定数字出现的次数,比如说第一次出现
9
。除了出现
0
之外,您也不会打印任何其他值

列表。插入(i,v)
将允许您在特定索引
i
处添加新值
v
。如果要在列表中的另一个元素之前或之后插入某些内容,这将非常有用

没有
list.tofile()
方法;您必须将每一行写入一个文件。您应该在Python文档中研究文件对象以及如何写入文件

list.remove(v)
将删除列表中第一次出现的
v

在矩阵中最后一行的
块中,不会打印任何内容;变量
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)
对于矩阵中的行:
A=行。计数(0)
B=行数(1)
C=行数(2)
D=行数(3)
E=行数(4)
F=行数(5)
G=行数(6)
H=行数(7)
I=行数(8)
J=行数(9)
印刷品(A)
如果A>0:
如果B<1:
印刷品(B)
如果您有兴趣进一步了解列表,您应该仔细阅读,并查看一些教程。还有一些免费的电子书,其中一本是,这是一个很好的资源



编辑:再看看你的代码,我发现你从来没有打印出B。因为你的“矩阵”中的零的数量从来没有超过零,你就不会打印出B。也许在你最初的问题中,你可以从结果中更清楚地说明你想要什么?如果矩阵的任何一行包含非零值,则永远不会打印B。

谢谢。我遇到的问题是不同的循环。我理解它的工作方式。我一直在看文档,它很有帮助。我还将看看这本python入门书。我现在很难看到哪些数字是A,哪些数字是B。它们似乎是交替的,对吗?我如何解决这个问题?您正在按顺序从A到J打印这些值,这样我们可以快速查看“矩阵”,看看接受了什么。A和B都应该为零,因为第一行中没有0或1的实例。再次,我强烈建议您检查现有文档,并检查除此响应之外的书籍;我意识到,你将更快地从这些资源中学到更多。但是如果我把它从print(B)改为print(“B”),它有一个数字模式,B,number,B,number等等。那么a和B是交替的吗?不,它们不是真正的交替。A和B的值会随着所查看的每一行而变化。扫描“矩阵”显示其中没有0,因此A始终为0。B将在0和正值之间波动,因为某些行中有1。
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)