2017-10-16 17 views
1

繰り返し値に直面したときに、 'index'関数の制限を越えることに問題があります。Python:各繰り返し値の辞書インデックスを返します

具体的には、次のような繰り返しがある辞書内の値については、最初の値だけでなく、値が出現するたびにインデックスを取得する方法がありますか?

example_dict={'ABAB': [9,10,6,6,6]} 
example_dict['ABAB'].index(6) # returns 2 

私の目標は、後で私の仕事でこれらのインデックスを使用することです。だから私は、9はインデックス0、10はインデックス1、6はインデックス2、3、4の値(2だけではない)であることを知る必要があります。

誰かがこれに対応するためのヒントを教えてください。ご助力ありがとうございます。

答えて

2

これはトリックを行う必要があります。

>>> example_dict = {'ABAB': [9,10,6,6,6]}                            
>>> [i for i, x in enumerate(example_dict['ABAB']) if x == 6] 
[2, 3, 4]  
+0

はあなたの助けをいただき、ありがとうございます。 –

2

リスト内包してみてください。

[i for i, x in enumerate(example_dict['ABAB']) if x == 6] 

For more discussion.

+1

ありがとうございます。 –

0
zz = {'a', [1,2,3,6,6,6,3,5,7,7,9,2]} 
y = { } 
K = [ ] 
for z in zz : 
    for i in zz[z] : 
     y.setdefault(i , [zz[z].index(i)]) 
     ii = zz[z].index(i) 
     zz[z][ii] = None 
     if i not in k : 
      k.append(i) 
     if i in zz[z] and i in k : 
      y[i].append(zz[z].index(i)) 
print(y) 
+0

これは、各値のインデックス付きの繰り返しを与えるはずです – Uraniumkid30

関連する問題