0

たとえば、次のように定義された dict var があります。

var{m:(a, b)}

そして今、forループで「a」の値を参照したい

var が以下のようにいくつかのインスタンスで満たされているとします

var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
4

5 に答える 5

1

これがあなたが望んでいるものかもしれません:

var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}

for m, elements in var.items():
    for a, b in elements.values():
        print a
于 2012-05-18T01:33:40.577 に答える
1

あなたはむしろ望むかもしれません:

for k, (v1, v2) in var.iteritems():
    print v1

または、すべてのdict値に2つの項目が含まれるわけではない場合(または、ご使用のバージョンのPythonがマルチレベルのタプルアンパックを実行しない場合):

for k, v in var.iteritems():
    print v[0]
于 2012-05-18T01:35:08.097 に答える
1

そう、あなたが望むようにv[0]['1a'][0]

編集:あなたのコメントに応じて、おそらく欲しい:

for key, value in v[k].items():
  print value[0]
于 2012-05-18T01:20:40.463 に答える
0

この一般的な例で、取得したアイテムにわかりやすい名前を付けることで、それが明確になるかどうか見てみましょう。

var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}

var に含まれるすべての dict を反復処理し、それらに含まれるものを反復処理します。

for number, innerdict in var.items(): # first time around number is e.g. 0 and innerdict is e.g. {'1a': (502, 2)}
    print number
    for numberletter, tup in innerdict.items(): # first time around numberletter is e.g. 1a and tup is e.g. (502, 2) 
        print numberletter, tup
        for tuplenumber in tup: # first time around tuplenumber is e.g. 502
            print tuplenumber
于 2012-05-18T01:37:55.710 に答える
0

これはあなたが探しているものですか?

var = {'m':('a', 'b'), 'n': ('c','d')}

a_coords = [(k,v.index('a')) for k,v in var.iteritems() if 'a' in v ]

結果:

>>> a_coords
[('m', 0)]

'm'は、a を保持するタプルの値に関連付けられているキーであり0、a が配置されているインデックスです。

于 2012-05-18T01:46:37.040 に答える