正規表現を使用して、長さが 2 以上のすべての単語を分割します。次に、2 文字より長いものを除外します。
>>> import re
>>> s = u'fb&ms yt/id a bc def ghij'
>>> t = re.findall(ur'[a-zA-Z]{2,}', s)
>>> t
[u'fb', u'ms', u'yt', u'id', u'bc', u'def', u'ghij']
>>> [x for x in t if len(x) == 2]
[u'fb', u'ms', u'yt', u'id', u'bc']
>>>
ピースを移調する方法:
>>> row1 = [u'fb', u'ms', u'yt', u'id']
>>> row2 = [u'ju', u'ny', u'id']
>>> zip(row1, row2)
[(u'fb', u'ju'), (u'ms', u'ny'), (u'yt', u'id')] # wrong, missing tail
>>> import itertools
>>> list(itertools.izip_longest(row1, row2))
[(u'fb', u'ju'), (u'ms', u'ny'), (u'yt', u'id'), (u'id', None)]
>>>
行数が可変であると仮定すると、次のようになります。
>>> rows = [[u'fb', u'ms', u'yt', u'id'], [u'ju', u'ny', u'id']]
>>> list(itertools.izip_longest(*rows))
[(u'fb', u'ju'), (u'ms', u'ny'), (u'yt', u'id'), (u'id', None)]
>>>