[David Hirschfield]
> for i,v in enumerate(L):
>     if v == X:
>         L[i] = Y

Here's an alternate solution using a replacement dictionary:

  M = {X:Y}
  for i, v in enumerate(L):
      L[i] = M.get(v, v)

The replacement dictionary directly supports generalization to multiple
substitution pairs without needing additional passes over the input.
Also, if you feel the need for speed, the method lookup can be bound
outside of the loop:

  # Find/Replace multiple pairs in a single pass using a bound method
  M = {X1:Y1, X2:Y2, X3:Y3}
  Mget = M.get
  for i, v in enumerate(L): 
      L[i] = Mget(v, v)


Raymond

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to