【发布时间】:2015-10-15 16:49:02
【问题描述】:
我是 python 新手,我有几个字典(都有几乎相同的键),我想在打印出来时首先显示某个键。 我知道 dicts 无法排序,这不是我想要做的,我只想根据特定的键顺序打印它们。
这是我目前所拥有的:
class Employees:
def __init__(self, name, job, pay, age=None):
self.name = name
self.job = job
self.pay = pay
self.age = age
def gatherAttrs(self):
attrs = []
for key in self.__dict__:
attrs.append('%s = %s' % (key, getattr(self,key)))
return ', '.join(attrs)
def __str__(self):
return '%s: %s' % (self.__class__.__name__, self.gatherattrs())
sarah = Employees("Sarah Hopkins", "nurse", 60000, 30)
bob = Employees("Bob Smith", "doctor", 90000)
print sarah
print bob
output:
Employees: job = nurse, pay = 60000, age = 30, name = Sarah Hopkins
Employees: job = doctor, pay = 90000, age = None, name = Bob Smith
我想要的是这样的:
Employees: name = Sarah Hopkins, job = nurse, pay = 60000, age = 30
我希望键“名称”(存在于所有字典中 - 已转换为列表 - )成为出现的第一个键值对。
我不知道为了实现这一点,我是否需要将字典转换为列表,然后使用索引(即使稍后如果我添加新属性可能会产生问题),或者我是否应该将它们保留为字典做点别的。
【问题讨论】:
标签: python-2.7 dictionary printing key