繁体   English   中英

字典值未排序python

[英]Dictionary values are not ordered python

当我这样从数据库中获取数据时:

filteredData = NaseljenoMesto.objects.filter(naseljenomesto_drzava=1).values('id','sifraMesta','nazivMesta','naseljenomesto_drzava__naziv')

为什么输出值的顺序不像上面这样:

输出是: naseljenomesto_drzava__naziv,sifraMesta,nazivMesta,id

基本字典不维护插入顺序。 字典由键的哈希值而不是键的词法值“排序”。

如果您需要保留插入顺序的字典,则Python版本> = 2.7会在collections模块中包含OrderedDict类。

常规命令:

>>> ud = {}
>>> ud['first'] = 1
>>> ud['second'] = 2
>>> ud['third'] = 3
>>> ud.values()
[2, 3, 1]

有序的字典:

>> from collections import OrderedDict
>>> od = OrderedDict()
>>> od['first'] = 1
>>> od['second'] = 2
>>> od['third'] = 3
>>> od.values()
[1, 2, 3]

Python不维护顺序。 如果要订购字典,请从标准库中检出collections模块:

import collections
d = collections.OrderedDict()

它的行为类似于您习惯的python字典,但保持顺序。

在编程进展的某个时刻,您将意识到,如果顺序对您很重要,那么您可能首先必须重新考虑使用字典。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM