# -*- coding: utf-8 -*-
import string
s = u"Dobre uczynki są jak dobre poematy. Można łatwo uchwycić, ku czemu zmierzają, lecz nie zawsze da się je racjonalnie wytłumaczyć."
exclude = set(string.punctuation)
s = ''.join(ch for ch in s if ch not in exclude)
s = s.split()
print s
prints...
[u'Dobre', u'uczynki', u's\u0105', u'jak', u'dobre', u'poematy', u'Mo\u017cna', u'\u0142atwo', u'uchwyci\u0107', u'ku', u'czemu', u'zmierzaj\u0105', u'lecz', u'nie', u'zawsze', u'da', u'si\u0119', u'je', u'racjonalnie', u'wyt\u0142umaczy\u0107']
It seems to be not only inelegant, but also slow.
Can you find any better solution? Maybe using regex?