2013-11-26 64 views

回答

1

如果为了事项然后用collections.OrderedDict否则去collections.defaultdict

>>> from collections import OrderedDict 
>>> lis = [1,2,3,1,2,3,1,2,3] 
>>> d = OrderedDict() 
>>> for i, item in enumerate(lis): 
    d.setdefault(item, []).append(i) 
...  
>>> d.values() 
[[0, 3, 6], [1, 4, 7], [2, 5, 8]] 
2

使用字典; collections.defaultdict()将是最简单的:

from collections import defaultdict 

indices = defaultdict(list) 
for index, value in enumerate(inputlist): 
    indices[value].append(index) 

result = [tuple(indices[value]) for value in sorted(indices)] 

这假设你想通过值排序顺序排序索引。