たとえば、次のように定義された dict var があります。
var{m:(a, b)}
そして今、forループで「a」の値を参照したい
var が以下のようにいくつかのインスタンスで満たされているとします
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
たとえば、次のように定義された dict var があります。
var{m:(a, b)}
そして今、forループで「a」の値を参照したい
var が以下のようにいくつかのインスタンスで満たされているとします
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
これがあなたが望んでいるものかもしれません:
var = {0: {'1a': (502, 2)}, 1: {'2b': (103, 3)}}
for m, elements in var.items():
for a, b in elements.values():
print a
あなたはむしろ望むかもしれません:
for k, (v1, v2) in var.iteritems():
print v1
または、すべてのdict値に2つの項目が含まれるわけではない場合(または、ご使用のバージョンのPythonがマルチレベルのタプルアンパックを実行しない場合):
for k, v in var.iteritems():
print v[0]
そう、あなたが望むようにv[0]['1a'][0]
編集:あなたのコメントに応じて、おそらく欲しい:
for key, value in v[k].items():
print value[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
これはあなたが探しているものですか?
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 が配置されているインデックスです。