我正在尝试从字典输出一些变量,但它不会按照我指定的顺序输出它。 我知道字典没有顺序,但我需要一本字典用于其他目的,所以我不能使用列表。我想知道是否有办法使输出与我在第一时间分配值的顺序相同。
输入:
a = {'Name': "a", 'Date': 20021501, 'Time': 1800, 'Type': "JK", 'TG': 68, 'DC': 98}
输出:
{'TG': 68, 'DC': 98, 'Time': 1800, 'Date': 20021501, 'Type': 'JK', 'Name': 'a'}
感谢任何助手
答案 0 :(得分:1)
使用OrderedDict
模块中的collections
。 http://docs.python.org/2/library/collections.html#collections.OrderedDict
如果您不需要修改数据,也可以考虑使用namedtuple
。 http://docs.python.org/2/library/collections.html#collections.namedtuple
答案 1 :(得分:0)
OrderedDict按照您指定的顺序保存内容。我经常发现它不是很有用,但如果你需要的话就使用它。
或者,如果您没有真正使用“词典”访问属性,请考虑只在这里存储元组列表,2元组,如果您不需要修改元组的任何一个成员。
a = [('Name', 'Joe'), ('Age, '10')]
for element in a:
print 'key {0}, value {1}'.format (element [0], element [1])
答案 2 :(得分:0)
使用OrderedDict: http://docs.python.org/2/library/collections.html#collections.OrderedDict
有序词典就像常规词典一样,但它们 记住插入项目的顺序。迭代时 有序字典,项目按顺序返回其键 首先加入。
OrderedDict的这个子类将记住条目最后插入的顺序:
class LastUpdatedOrderedDict(OrderedDict):
'Store items in the order the keys were last added'
def __setitem__(self, key, value):
if key in self:
del self[key]
OrderedDict.__setitem__(self, key, value)
该链接还表明您可以采用普通字典,对其进行排序,并将其按顺序存储为OrderedDict。