用python打印字典的原始输入顺序

2024-06-11 04:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如何按我设置的原始顺序打印词典?

如果我有这样一本字典:

smallestCars = {'Civic96': 12.5, 'Camry98':13.2, 'Sentra98': 13.8}

我这样做:

for cars in smallestCars:
    print cars

它输出:

Sentra98
Civic96
Camry98

但我想要的是:

Civic96
Camry98
Sentra98

有没有办法按顺序打印原词典而不将其转换为列表?


Tags: in列表for字典顺序cars词典print
3条回答

字典不需要保持秩序。使用OrderedDict

当您创建字典时,python并不关心您编写元素的顺序,它也不会记住创建对象后的顺序。你不能指望它(普通字典)按同样的顺序打印。更改代码的结构是您在这里的最佳选择,OrderedDict是一个很好的选择,正如其他人所说。

常规字典没有顺序。您需要使用collections模块的OrderedDict,它可以接受列表或元组列表,如下所示:

import collections

key_value_pairs = [('Civic86', 12.5),
                   ('Camry98', 13.2),
                   ('Sentra98', 13.8)]
smallestCars = collections.OrderedDict(key_value_pairs)

for car in smallestCars:
    print(car)

输出是:

Civic96
Camry98
Sentra98

相关问题 更多 >