skip next item in list
danmcleran at yahoo.com
danmcleran at yahoo.com
Mon Jun 11 11:28:20 EDT 2007
On Jun 11, 8:49 am, ahlongxp <ahlon... at gmail.com> wrote:
> list=('a','d','c','d')
> for a in list:
> if a=='a' :
> #skip the letter affer 'a'
>
> what am I supposed to do?
You could do this with itertools.ifilter and an predicate (pred) for a
more OO solution. I've created 2 lists, the source list (l) and the
expected answer (ans). Make sure this is what you meant in your
problem statement:
import itertools
l = ['a', 'b', 'c', 'a', 'd', 'e', 'f', 'a', 'g', 'h']
ans = ['a', 'c', 'a', 'e', 'f', 'a', 'h']
class pred(object):
def __init__(self):
self.last = None
def __call__(self, arg):
result = None
if self.last == 'a':
result = False
else:
result = True
self.last = arg
return result
i = itertools.ifilter(pred(), l)
result = list(i)
print result
print ans
assert result == ans
print 'done'
More information about the Python-list
mailing list