3 回答
TA贡献1825条经验 获得超6个赞
作为一项学术练习:
listy = ["apples", "oranges", "apples", "bananas", "apples", "bananas"]
d = {k:[] for k in set(listy)}
for i,e in enumerate(listy):
d[e].append(i)
print(d)
print('bananas', d['bananas'])
输出
{'oranges': [1], 'bananas': [3, 5], 'apples': [0, 2, 4]}
bananas [3, 5]
TA贡献1863条经验 获得超2个赞
如果您的列表不断变化,您可以创建一个在您需要时检查索引的函数。
find_instance = lambda ele,lst : [i for i,j in enumerate(lst) if j==ele]
# To get indexes
find_instance('bananas', listy)
如果您的列表是静态的,您可以用来defaultdict存储索引并从中获取索引。它会更快,因为它不会在每次需要索引时迭代列表。
from collections import defaultdict
my_indexes = defaultdict(list)
for i, j in enumerate(listy):
my_indexes[j].append(i)
# To get indexes
print(my_indexes['bananas'])
添加回答
举报