在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中打印未排序的字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章