如何从左到右打印字典值?

时间:2012-05-20 16:23:18

标签: python printing dictionary

我有一本字典:

a = {"w1": "wer", "w2": "qaz", "w3": "edc"}

当我尝试打印其值时,它们从右到左打印:

>>> for item in a.values():
    print item,


edc qaz wer

我希望它们从左到右打印:

wer qaz edc

我该怎么做?

5 个答案:

答案 0 :(得分:9)

你做不到。字典没有任何可以使用的顺序,因此没有关于字典文字的“从左到右”的概念。决定分类,并坚持下去。

答案 1 :(得分:3)

您可以使用collections.OrderedDict(python 2.7或更新版本 - 某处有一个ActiveState配方,为python 2.4或更新版本(我认为)提供此功能)来存储您的项目。当然,您需要以正确的顺序将项目插入字典中({}语法将不再起作用 - 也不会将key = value传递给构造函数,因为正如其他人所提到的那样,那些依赖在没有秩序概念的常规词典上)

答案 2 :(得分:2)

假设您希望按键的字母顺序排列它们,您可以执行以下操作:

a = {"w1": "wer", "w2": "qaz", "w3": "edc"}  # your dictionary

keylist = a.keys()   # list of keys, in this case ["w3", "w2", "w1"]
keylist.sort()       # sort alphabetically in place, 
                     #  changing keylist to ["w1", "w2", w3"]

for key in keylist:
    print a[key]     # access dictionary in order of sorted keys

答案 3 :(得分:0)

正如@ IgnacioVazquez-Abrams所提到的,这不是词典中的order,但你可以通过使用来自http://pypi.python.org/pypi/odict odict来达到类似的效果>

还可以查看PEP372以获取更多讨论和odict补丁。

答案 4 :(得分:0)

字典使用哈希值来关联值。对字典进行排序的唯一方法是:

dict = {}
x = [x for x in dict]
# sort here
y = []
for z in x: y.append(dict[z])

我有一段时间没有在python中做过任何实际的工作,所以我可能会有点生疏。如果我弄错了,请纠正我。