我正在尝试通过执行以下操作从字典列表中获取所有值(对应于特定键的值除外):
fv = [[v for (k,v) in d.iteritems() if k is not 'xKey'] for d in someDict]
someDict
就像:
[{xKey:0.1,yKey:0.2,zKey:0.3},{yKey:0.9,xKey:0.7,zKey:0.4}...]
我知道 dict 没有固有的顺序。但是我的列表 fv 需要按顺序排列这些值。我正在考虑对键上的字典进行排序,然后做我刚刚做的事情。但这能保证有效吗?
我知道 usingOrderedDict
是一种选择,但与 dict 相比,它的性能似乎也较差,这对我来说是一个问题,因为我的字典通常会包含大量数据。
更新:当我说我需要按顺序排列值时,它们实际上并不需要排序。我的意思是我需要能够每次都以固定的确定顺序检索值列表。在上面的示例中,我总是想得到 [[0.2,0.3],[0.9,0.4]] 尽管它本身可能不是排序顺序。排序将强制执行一个确定性顺序。我真正关心的是保持值在最终列表中的位置。例如 yKey 的值必须始终是每个列表中的第一个值,zKey 的值必须始终是每个列表中的第二个值依此类推,即使 ykey、zkey 等可能在字典中的任何顺序。