「お題:文字列を先頭から見て同じところまで除去」をPythonで作ってみた

「お題:文字列を先頭から見て同じところまで除去」http://d.hatena.ne.jp/fumokmm/20110812/1313138407Pythonでやってみた。

itertoolsにほぼ同じことを行う関数(itertools.dropwhile)があったので数分でできた(ドヤ顔)

#!/usr/bin/env python
# coding: utf-8
from itertools import imap, izip, izip_longest, dropwhile
def hoge(*args):
    """
    >>> hoge("abcdef", "abc123")
    ('def', '123')
    >>> hoge("あいうえお", "あいさんさん", "あいどる")
    ('\\x86\\xe3\\x81\\x88\\xe3\\x81\\x8a', '\\x95\\xe3\\x82\\x93\\xe3\\x81\\x95\\xe3\\x82\\x93', '\\xa9\\xe3\\x82\\x8b')
    >>> hoge("12345", "67890", "12abc")
    ('12345', '67890', '12abc')
    """
    return tuple(imap(''.join, izip(*tuple(dropwhile(lambda xs: all(imap(lambda x: x == xs[0], xs)), izip_longest(*args, fillvalue=''))))))

if __name__ == "__main__":
    import doctest
    doctest.testmod()