printing - Incorrect format of generator expression? python -
i'm trying change several if
, else
statements generator expressions , reason gives me error.
so if
, else
statement this..
sequence = 'ctgagtagc' reference = 'atgactgcc' seq, ref in zip(sequence,reference): if seq == ref: print seq,'-',ref else: print seq,' ',ref
i've tried above if , else statement generator expression..
tmp = (seq,'-',ref if seq==ref else seq,' ',ref seq,ref in zip(sequence,reference)) print tmp
and gives me error this:
tmp = (seq,'-',ref if seq==ref else seq,' ',ref seq,ref in zip(sequence,reference)) ^ syntaxerror: invalid syntax
you need disambiguate tuples in expression:
tmp = ((seq, '-', ref) if seq == ref else (seq, ' ', ref) seq, ref in zip(sequence, reference))
or even
tmp = ((seq, '-' if seq == ref else ' ', ref) seq, ref in zip(sequence, reference))
demo:
>>> sequence = 'ctgagtagc' >>> reference = 'atgactgcc' >>> tmp = ((seq, '-' if seq == ref else ' ', ref) ... seq, ref in zip(sequence, reference)) >>> tup in tmp: ... print tup ... ('c', ' ', 'a') ('t', '-', 't') ('g', '-', 'g') ('a', '-', 'a') ('g', ' ', 'c') ('t', '-', 't') ('a', ' ', 'g') ('g', ' ', 'c') ('c', '-', 'c')
Comments
Post a Comment