如何查找列表中重复项的所有索引? (蟒蛇)

时间:2017-10-12 05:22:33

标签: python python-3.x pycharm

如何查找定期项目的所有索引?例如:

    list = ['A','A','B','A','B','B','A']

我想要返回所有出现的'B',所以它会返回

    indexes = [2,4,5]

2 个答案:

答案 0 :(得分:2)

永远不会使用默认数据结构,例如listdict作为变量。

这应该这样做:

from collections import defaultdict

# Create a dict with empty list as default value.
d = defaultdict(list)

# Initialise the list.
l = ['A','A','B','A','B','B','A']

# Iterate list with enumerate.
for index, e in enumerate(l):
    d[e].append(index)

# Print out the occurrence of 'B'. 
print(d['B'])

输出:

[2, 4, 5]

答案 1 :(得分:1)

在这里使用enumerate

>>> l = ['A','A','B','A','B','B','A']
>>> [i for i,d in enumerate(l) if d=='B']
[2, 4, 5]