Python:返回每个重复值的字典索引

时间:2017-10-16 00:58:37

标签: python dictionary

当遇到重复值时,我无法通过'index'功能的限制。

具体来说,对于字典中存在重复的给定值(如下例所示),有没有办法检索每次出现的值的索引,而不仅仅是第一个?

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

我的目标是稍后在我的工作中使用这些索引。所以我需要知道9是索引0,10是索引1,而6是值中的索引2,3和4(不仅仅是2)。

有人可以为此提供一个解决方法的提示吗?非常感谢你的帮助。

3 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

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

答案 1 :(得分:2)

尝试列表理解:

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

For more discussion.

答案 2 :(得分: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)
相关问题