对类对象的Dict理解

时间:2013-01-12 17:48:34

标签: python

我正在尝试创建员工姓名字典作为具有FullTime类对象值的键。我认为我需要的一行代码是:

staffClassDict = {employee: FullTime(employee) for employee in staffList}

但是,当我使用此代码时,不会创建字典,从而导致整个程序中出现很多关键错误。如果我将FullTime(employee)替换为0,那么列表就会毫无障碍地生成。有没有办法用对象来实现字典理解,还是应该坚持使用更传统的for循环?

1 个答案:

答案 0 :(得分:1)

对我来说很好:

>>> class FullTime(object):
...     def __init__(self, name):
...         self.name = name
...     def __repr__(self):
...         return "FullTime(%r)" % self.name
...
>>> staffList = ["Alice", "Bob", "Eve"]
>>> staffClassDict = {employee: FullTime(employee) for employee in staffList}
>>> staffClassDict 
{'Bob': FullTime('Bob'), 'Alice': FullTime('Alice'), 'Eve': FullTime('Eve')}