raoulbia at gmail.com
Sun Aug 22 21:03:04 CEST 2010
On Aug 22, 7:12 pm, Tim Chase <python.l... at tim.thechases.com> wrote:
> On 08/22/10 12:50, Baba wrote:
> > level: beginners
> > I was trying to write simple code that compares 2 tuples and returns
> > any element in the second tuple that is not in the first tuple.
> > def tuples(t1, t2):
> > result = 
> > for b in t2:
> > for a in t1:
> > if b == a:
> > break
> > else:
> > result=result+[b,]
> > return result
> > print tuples([0,5,6], [0,5,6,3,7])
> > the code works but i was surprised by the following: my understanding
> > was that an ELSE clause is part of an IF statement. Therefore it comes
> > at the same indentation as the IF statement.
> The ELSE clause can be used either with an IF (as you know) or
> with a FOR loop, which is interpreted as "if this loop reached
> the end naturally instead of exiting via a BREAK statement,
> execute this block of code".
> If you reach the end of t1 without having found a value (and then
> issuing a "break"), then the current value of t2 (b) should be
> appended to the result.
> That said, unless order matters, I'd just use sets:
> def tuples(t1, t2):
> return list(set(t2)-set(t1))
> which should have better performance characteristics for large
More information about the Python-list