【发布时间】:2023-03-15 01:16:01
【问题描述】:
如何找到重复项目的所有索引?例如:
list = ['A', 'A', 'B', 'A', 'B', 'B', 'A']
我想返回所有出现的“B”,所以它会返回:
indexes = [2, 4, 5]
【问题讨论】:
-
你是先用谷歌搜索的吗? -1
标签: python python-3.x list
如何找到重复项目的所有索引?例如:
list = ['A', 'A', 'B', 'A', 'B', 'B', 'A']
我想返回所有出现的“B”,所以它会返回:
indexes = [2, 4, 5]
【问题讨论】:
标签: python python-3.x list
在此处使用enumerate
>>> l = ['A','A','B','A','B','B','A']
>>> [i for i,d in enumerate(l) if d=='B']
[2, 4, 5]
【讨论】:
永远不会使用默认数据结构,例如list, dict 作为变量。
应该这样做:
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]
【讨论】: