length python多维列表



我在以下代码中有一个奇怪的错误:

s = MyClass()
f = open(filename, 'r')
nbline = f.readline()
for line in iter(f):
        linesplit = line.split()
        s.add(linesplit)
f.close()
print(len(s.l))
print(nbline)

这两张照片给我的结果不一样。为什么?

类的定义是:

class MyClass:
    l = []
    def add(self, v):
        self.l.append(v)

文件格式为:

161
3277 4704 52456568 0 1340 380 425
3277 4704 52456578 1 1330 380 422
3118 4719 52456588 1 1340 390 415
3109 4732 52456598 1 1340 400 420
3182 4743 52456608 1 1350 410 427
3309 4789 52456618 1 1360 420 446
...

对于该文件,打印内容为:51020161

文件包含162行(行号+行(

如果我调用一个函数,它是可以的,当我调用该函数两次或两次以上时会出现错误(看起来像是读取了以前的文件!!:/(

首先,感谢您的编辑。

这里有一个更好看、更像蟒蛇的代码:

s = MyClass()
with open(filename, 'r') as f:
    nbline = f.readline()
    for line in f:
        linesplit = line.split()
        s.add(linesplit)

然后确保在MyClass 中设置self.l = []

尝试以下行的内容:

(len(列表[第一维度](+len(列出[第二维度](等。

有点笨重,但我认为它可以满足您的要求

好的,问题是s.l是所有实例共享的类变量!!!

文件可能有一两个换行符。如果是len(s.l) == nbline + 1或只是打印s.l[-3:]进行检查。

相关内容

  • 没有找到相关文章

最新更新