Hacker News new | ask | show | jobs
by calroc 4517 days ago
I couldn't resist. Moar funky-cool Python:

    >>> from string import ascii_letters
    >>> ors = ['|'] * (len(ascii_letters) * 2 - 1)
    >>> ors[::2] = ascii_letters
    >>> ''.join(ors)
    'a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z'
(Obviously, in this example '|'.join(ascii_letters) would suffice, but if the objects weren't strings...)
1 comments

Not gonna lie... your snippet made me say "WTF?" Why not just do:

  from string import ascii_letters
  '|'.join( ascii_letters )
(I also like list slicing... but only when necessary.)
Yeah, I realized after posting it. (See edit.) The original code was using non-string objects. I basically come up with this to get the same behavior as str.join(). ;-)

    '|'.join(str(x) for x in y) # or
    '|'.join(map(str, y))
The original use for that code was to build a list of parsing objects to create a single parsing object that was the OR'ing of the basic ones.

Aw, heck, code speaks louder than words:

https://github.com/PhoenixBureau/PigeonComputer/blob/master/...

    intersperseM or $ map chartok whitespace
Oh... wait... sorry... wrong language.