2014-03-02 45 views
0

比方说,我首先通过创建一个班级,变量为self.memory = [None] * 10000。 现在我有一个文件的结构如下所示:列表生成器/阅读文件和列表的理解

1 1231 
2 1231 
3 asdma 
4 landsl 

我想使发电机语句,将读取该文件的每一行,并把它放在self.memory变量其指定的指数(左数) 。 这样的陈述可能吗?

编辑:加入我在用目前:

def AbsoluteLoader(self, f):                       
    with open(f, 'r') as assembly:                      
     for line in assembly:                       
      c = line.split()                       
      if int(c[0]) == -1:                      
      self.pc = long(c[1])                     
      break                         
      try:                          
      self.memory[int(c[0])] = long(c[1])                 
      except:                         
      print 'invalid' 
+1

为什么你认为你需要一台发电机声明? –

+0

不一定“需要”一个,我只是觉得它会很好。 – corvid

+0

为什么不发布你的代码到目前为止,并问一个关于它的问题? –

回答

0
class MyClass: 
    def __init__(self, fname, lines=10000): 
     self.pc = None 
     self.memory = mem = [0L] * lines 

     with open(fname) as inf: 
      for line in inf: 
       ndx, num = line.split() 
       ndx = int(ndx) 
       num = long(num) 
       try: 
        mem[ndx] = num 
       except IndexError: 
        if ndx == -1: 
         self.pc = num 
         break 
        else: 
         raise ValueError('invalid entry: {}'.format(line.rstrip('\r\n')))