所以我对编程很陌生,而且我正在研究一种基于文本的小游戏。无论如何,这是我的问题。
x=1
for items in hero.basics:
print(x, ". ", items, sep = "")
x += 1
和字典是,
self.basics = {"Attack" : self.attack, "Potion" : self.potion}
所以我需要它以与实际字典相同的顺序显示,但它总是随机显示。
有什么建议吗?
答案 0 :(得分:4)
这是一个问题:字典是无序的。它们不是按顺序排列的,也不是按顺序存储的。
看看这个控制台会话:
>>> d = {'a':5, 'b':6, 'c': 3}
>>> d
{'a': 5, 'c': 3, 'b': 6}
请参阅?
但是,您可以在循环键的同时对其进行排序:
for k in sorted(d):
但字典本身仍将保持未分类状态。或者,您可以查看collections.OrderedDict
(这是dict
的子类),以确实有一个排序字典。
答案 1 :(得分:2)
如果你真的需要一个有序的词典,那么collections.OrderedDict
就是你要找的。来自文档:
有序词典就像常规词典一样,但它们记住了项目的插入顺序。迭代有序字典时,项目按照其键首次添加的顺序返回。