3

Python 辞書の順序を確認できますか?

この関数は、と にop.GetTangent(id)関連付けられた 2 つの値を含む辞書を返します。怠惰な方法で解凍したい。'vl''vr'

vr, vl = op.GetTangent(id).values()

vr正しい値を持っていることを確認できますか、vlそれとも交換される場合がありますか?

4

4 に答える 4

6
vr, vl = map(op.GetTangent(id).get, ('vr', 'vl'))
于 2012-07-05T07:39:48.270 に答える
6

いいえ、メソッドによって返されるエントリの順序に依存するべきではありませんvalues。簡単なオプションがいくつかあります。

  • 結果のリストを呼び出しsortedます (値を並べ替えることができる場合)
  • アイテムを呼び出しsortedて値を引き出す
  • 使うcollections.OrderedDict
于 2012-07-05T07:26:17.277 に答える
3

いいえ、決して。

代わりに

getbyname = lambda d, *kk: [d[k] for k in kk]

そしてそれを次のように使用します

vr, vl = getbyname(op.GetTangent(id), 'vr', 'vl')

またはただする

d = op.GetTangent(id)
vr, vl = [d[i] for i in ('vr', 'vl')]

一度だけ必要な場合。

于 2012-07-05T07:28:41.500 に答える