On Saturday, August 9, 2014 8:36:28 AM UTC+5:30, Steven D'Aprano wrote: > luofeiyu wrote:
> > >>> x=["x1","x3","x7","x5","x3"] > > >>> x.index("x3") > > 1 > > if i want the result of 1 and 4 ? > def index_all(source, target): > results = [] > for i, obj in enumerate(source): > if obj == target: > results.append(i) > return results > index_all(x, "x3") > => returns [1, 3] Heh! And the OP asked for a simplification! >>> def index_all(lst, val): return (i for i,v in enumerate(lst) if v == val) ... >>> index_all("abcdeaga", "a") <generator object <genexpr> at 0x7f21884797d0> >>> list(index_all("abcdeaga", "a")) [0, 5, 7] [To the OP] Yeah I am in the minority at least out here in considering comprehensions simpler than loops. Take your pick -- https://mail.python.org/mailman/listinfo/python-list