python利用defaultdict、enumerate将列表中相同名字对应的索引值index放到一起,组成列表,最后整体放到一个列表中:
#!/usr/bin/env python
# coding=utf-8
# 将列表中相同名字对应的索引值放到一起,组成列表,最后整体放到一个列表中
import itertools
from collections import defaultdict
str1 = ['名称1','名称1','名称1','名称2','名称1','名称3','名称3']
activity_index = []
d = defaultdict(list)
for k,va in [(v,i) for i,v in enumerate(str1)]:
d[k].append(va)
# defaultdict(<class 'list'>, {'名称1': [0, 1, 2, 4], '名称2': [3], '名称3': [5, 6]})
print(d)
for val in d.values():
activity_index.append(val)
# 结果:[[0, 1, 2, 4], [3], [5, 6]]
print(activity_index)

