当我从数据库中获取数据时:
filteredData = NaseljenoMesto.objects.filter(naseljenomesto_drzava=1).values('id','sifraMesta','nazivMesta','naseljenomesto_drzava__naziv')
为什么输出值不符合上述顺序:
输出为:naseljenomesto_drzava__naziv,sifraMesta,nazivMesta,id
答案 0 :(得分:3)
基本字典不维护广告订单。字典是"有序"通过键的哈希值而不是键的词法值。
答案 1 :(得分:2)
如果你需要一个维护插入顺序的字典,Python版本> = 2.7在集合模块中包含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]
答案 2 :(得分:2)
Python不维护秩序。如果您想要一个有序字典,请查看标准库中的collections
模块:
import collections
d = collections.OrderedDict()
它的行为类似于您习惯的python词典,但保持顺序。
答案 3 :(得分:1)
在编程方面取得进展的某些方面,你会发现,如果订单对你很重要,那么你可能不得不重新考虑首先使用字典