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