Python - What do these two lines do? -


being new python, i'm having heck of time figuring out these 2 lines do:

for in [j j in xrange(0, n) if [k k in xrange(j) if now[k] == now[j]] == []]:    j in [k k in xrange(1, k + 1) if [l l in xrange(i) if now[l] == k] == []]: 

is there way rewrite noobs myself understand it? thanks.

i'm positive code equivalent to:

for in range(0, n):   prefix = set(now[:i])   if now[i] in prefix: continue    j in range(1, k + 1):     if j in prefix: continue      # 

or (which bit less efficient, nicely reflects idea behind code):

for i, j in itertools.product(range(0, n), range(1, k + 1)):   prefix = now[:i]   if now[i] not in prefix , j not in prefix:     # , j 

but it's written in convulted, inefficient way (especially [...] == [] nasty , pointless). maybe feels pretty clever using complex structures simple ones better suited.


Comments

Popular posts from this blog

delphi - How to convert bitmaps to video? -

jasper reports - Fixed header in Excel using JasperReports -

python - ('The SQL contains 0 parameter markers, but 50 parameters were supplied', 'HY000') or TypeError: 'tuple' object is not callable -