2014-11-23 186 views
0

这里是开始的代码。

如果你想忽略所有的CSV爵士乐,重要的部分就是循环。如何在循环内创建一个不同的变量名?

import csv 

Teacher_Array = [] 

class Teacher: 

    def __init__ (self, login, password, name, room, booked): 
     self.password = password 
     self.name = name 
     self.login = login 
     self.booked = booked 
     self.room = room 


with open('file.csv') as f: 

    reader = csv.reader(f) 
    for row in reader: 
     if len(row) < 10 and len(row) > 2: 

好的。

cvs的东西有点除了点,关键信息是循环,我怎么每次创建不同的变量名?

在这一点上我想创建老师说的对象,

MrDongle =老师(行[0],行[1],行[3]等)

但是我不能让循环中的新名字!请帮助。

非常爱,有些愚蠢的少年。

+1

也许你想把它们放进'dict'? 'some_dict ['MrDongle'] =老师(...)' – mostruash 2014-11-23 11:28:39

+1

创建一堆变量名称可能不是最好的解决方案。您可以仅收集列表中的对象实例。根据您打算对结果做什么,如前所述,这可能更适合存储字典。 – Isaac 2014-11-23 14:16:26

回答

0

那么,就做一个名字在字典中键:

teachers = {} 
.... 
teachers['MrDongle'] = Teacher(row[0], row[1], row[3], etc) 

编辑 其实,你可以生成一个名字:

exec('{} = Teacher(...)'.format('MrDongle', ...) 

但这是不可扩展的和不正确的解决方案。

相关问题