I';我想用Python创建一个记录数组(Pascal)。但是怎么做呢?

I';我想用Python创建一个记录数组(Pascal)。但是怎么做呢?,python,data-structures,Python,Data Structures,这是我的代码: class typeE: def __init__(self): self.u = 0 self.v = 0 self.w = 0 def readData(): global n global m global e e = [typeE] c = -2 f = open(fi, 'r') for line in f: print e[0]

这是我的代码:

class typeE:
    def __init__(self):
        self.u = 0
        self.v = 0
        self.w = 0


def readData():
    global n
    global m
    global e
    e = [typeE]
    c = -2
    f = open(fi, 'r')
    for line in f:
        print e[0]
        c += 1
        ln = [int(i) for i in line.split()]
        if c == -1:
            n = ln[0]
            m = ln[1]
        else:
            e[c].u = ln[0]
            e[c].v = ln[1]
            e[c].w = ln[2]
    f.close()
你知道如何用Python制作这样的记录吗

type
      typeE = record
                  u, v, w: longint;
      end;

Python不是Pascal。您不创建“记录数组”,而是创建“对象列表”(可以是自定义类的实例,但在您的情况下也可以是普通的
dict
s)

此外,全局变量是一个坏主意,无论使用何种语言,最好使用真函数(根据输入返回结果的函数,而不是变异或重新绑定全局变量)

pythonic版本的代码(保留错误处理)如下所示:

class TypeE(object):
    def __init__(self, u=0, v=0, w=0):
        self.u = u
        self.v = v
        self.w = w

    def __repr__(self):
        return "<TypeE({u}, {v}, {w})>".format(**self.__dict__) 

def to_int(line):
    return [int(i) for i in line.strip().split()]

def read_data(src):
    records = []

    with open(src, 'r') as f:
        headers = to_int(f.next())[:2]
        for line in f:
            records.append(TypeE(*ln[:3]))

    return headers, records

def main():
    (m,n), e = read_data("/path/to/your/file")
    # now do something with m, n and e
    print m, n, e

if __name__ == "__main__":
    main()    
类别类型(对象):
定义初始化(self,u=0,v=0,w=0):
self.u=u
自我评价,自我评价
self.w=w
定义报告(自我):
返回“”。格式(**自我记录)
def至_int(行):
返回[int(i)for i in line.strip().split()]
def读取数据(src):
记录=[]
打开(src,'r')作为f:
headers=to_int(f.next())[:2]
对于f中的行:
记录。追加(类型(*ln[:3]))
返回标题、记录
def main():
(m,n),e=读取数据(“/path/to/your/file”)
#现在用m,n和e做点什么
打印m,n,e
如果名称=“\uuuuu main\uuuuuuuu”:
main()

你的英语不是问题所在。你想达到什么目标?您希望如何处理此数据结构?
fi
是一个文件名,在这种情况下用引号括起来,还是一个变量,在这种情况下它是未定义的。
e=[type]
可能应该是
e=[type()]
。要向列表中添加元素,请使用
e.append(typeE())