我可以确定字典中的顺序吗?

Nik*_*s R 3 python dictionary iterable-unpacking

我可以确定Python字典中的顺序吗?

该函数op.GetTangent(id)返回一个包含两个与'vl'和相关的值的字典'vr'.我想以懒惰的方式解开它.

vr, vl = op.GetTangent(id).values()
Run Code Online (Sandbox Code Playgroud)

我可以确定vr并且vl具有正确的价值,还是可以存在交换的情况?

Cra*_*tro 6

不,您永远不应该依赖该values方法返回的条目的顺序.您有几个简单的选择:

  • 调用sorted结果列表(如果值可以排序)
  • 调用sorted项目并提取值
  • 用一个 collections.OrderedDict


Joh*_*ooy 6

vr, vl = map(op.GetTangent(id).get, ('vr', 'vl'))
Run Code Online (Sandbox Code Playgroud)