[英]Messy dictionary output in python
我正在尝试从字典中输出一些变量,但是它没有按照我分配的顺序输出。 我知道字典没有顺序,但是我需要字典用于其他目的,所以我不能使用列表。 我想知道是否有一种方法可以使输出与我首先分配值的顺序相同。
输入:
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'}
感谢任何帮助者
使用来自collections
模块的OrderedDict
。 http://docs.python.org/2/library/collections.html#collections.OrderedDict
如果您不需要修改数据,则也可以考虑namedtuple
。 http://docs.python.org/2/library/collections.html#collections.namedtuple
OrderedDict使事物保持分配的顺序。 我并不经常发现它有用,但是如果您需要它,请使用它。
另外,如果您并没有真正使用“字典”访问属性,那么,如果您不需要修改任何一个元组成员,请考虑只在此处存储一个元组列表,即2个元组。
a = [('Name', 'Joe'), ('Age, '10')]
for element in a:
print 'key {0}, value {1}'.format (element [0], element [1])
使用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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.