在Python中打印未排序的字典[重复]

Posted

技术标签:

【中文标题】在Python中打印未排序的字典[重复]【英文标题】:Print unsorted dictionary in Python [duplicate] 【发布时间】:2019-08-23 06:52:07 【问题描述】:

我想打印出未排序的字典,但它是排序出来的。

这是我使用的代码(版本 2.7.5 Linux):

# id and name array are not the actual input. It is just a sample input. (So no hard-coding please) 
# More importantly, I just want to figure out how to have the unsorted dictionary.

id = [1 ,4, 2] 
name = ["John" , "Mary", "Alice"]
my_dict = 

for x in range(len(id)):
    my_dict[id[x]] = name[x]

for key, val in my_dict.items():
    print(key, val)

预期输出:

(1, "John")
(4, "Mary")
(2, "Alice")

实际输出:

(1, "John")
(2, "Alice")
(4, "Mary")

【问题讨论】:

python 中的字典从不排序。你所看到的只是偶然发生的事情。 ***.com/questions/327311/… 那么当我执行 key_list = list(my_dict.keys()) 时。我希望看到 key_list 为 [1 , 4 , 2 ] 但它返回给我 [1, 2 , 4]。 请参考我分享的链接。这取决于散列 【参考方案1】:

它是排序的。在 Python 2.7(和 3.7 之前的版本)中,字典是无序的;这意味着它们可以按任何顺序存储。在您的测试中,巧合的是,它们以这种方式存储。如果您使用 Python 3.7 尝试相同的测试,您将看到预期的结果。

如果您想在 Python 2.7 上保持创建顺序,请改用 OrderedDict

【讨论】:

以上是关于在Python中打印未排序的字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章

打印按其键排序的字典项目[重复]

如何在Python中将json.loads作为列表而不是字典[重复]

在Python 3.4中按日期对字典列表进行排序[重复]

python怎么对字典进行排序

python按自定义顺序排序字典列表[重复]

python字典怎么排序