2013-11-26 61 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)] 

這假設你想通過值排序順序排序索引。