Mark Dickinson wrote: > Here's a variant of André's brilliant idea that's > 119 characters long, and fully printable: > > j=''.join;seven_seg=lambda z:j(j(' _ | |_ _|_|' > [ord('^r|=Zm.:v\r'[int(a)])%u*2:][:3]for a in z) > +"\n"for u in(3,7,8))
You have an escaped CR (\r) as the last character in your string. Here is a 118 character fully printable variant without the \r: j=''.join;seven_seg=lambda x:j(j(' _ |_|_ _| |'[ord('^rm=3|4:s»'[int(c)])%d*2:][:3]for c in x)+"\n"for d in(3,8,7)) Note that there is only one non-ascii character in the code. However, André's final solution is one character shorter (117). -- Christoph -- http://mail.python.org/mailman/listinfo/python-list