2017-09-27 10 views
1

私の問題は単純な反復で解くことができますが、私はPythonには新しく、「イディオム」や標準言語の構築ソリューションがあるのだろうかと思います。 dictで未知の部分を持つキーとしてタプルを検索する

だから問題は、私はこのような辞書を持っているということです。

mydict = { 
(1,2) : 111, 
(2,3) : 222, 
(xxx, yyy) : zzz, 
(xxx, qqq) : www, 
.... 

それ辞書ウィッヒは私が必要な場合、私は(xxx, *)のようにタプルを検索するにはどうすればよいのキータプルは値 を指すから構成されているだけ(xxx, yyy)(xxx, qqq)ペア? mydict[(xxx, *)]のようなものもありますか?

ありがとうございました!

+3

リスト内包表記を使用することができます: '[k [0] == xxx]の場合、[k for kydict in k] '。 –

+1

反復せずに行う方法はありません。 –

答えて

1

そのための直接的な言語構成はありません。さらにおよびグループ化ステップを、それを破壊することにより、あなたはそれを行うことができ

lst = [v for (k1, _), v in mydict.items() if k1 == x] 
+0

ブリリアント!まさに私が探していたもの! –

0

:あなたは2組(x, y)の最初の要素はxあるキー(または値)を選択し、使用にリストの内包表記を使用する必要がありますすべてのxxx、???キーのタプル・アプローチの代わりに、辞書の同じレベルで一緒に使用できます。

mydict = { 
1: {2 : 111}, 
2: {3 : 222}, 
xxx { yyy : zzz, 
     qqq : www}, 
.... 

この種のは、あなたがさらに一歩を踏み出すとあなたの配列mydict[xxx].values = [zzz, www]xxxが含まれている値の配列を取得するためにmydict[xxx].values()を行うことができますのでmydict[xxx] = { yyy : zzz, qqq : www}、であることを望む同じ場所にあなたを取得しますキーで

関連する問題