Ответ 1
Конечная цель здесь состоит в том, чтобы скомпилировать список символов в данных который не может кодировать ascii.
Самый эффективный метод, который я могу придумать, - использовать re.sub()
, чтобы вырезать любые допустимые символы ASCII, которые должны оставить вас с строка, содержащая все символы, отличные от ASCII.
Это просто вычеркнет печатаемые символы...
>>> import re
>>> print re.sub('[ -~]', '', u'£100 is worth more than €100')
£€
... или если вы хотите включить символы, не подлежащие печати, используйте это...
>>> print re.sub('[\x00-\x7f]', '', u'£100 is worth more than €100')
£€
Чтобы устранить дубликаты, просто создайте set()
возвращаемой строки...
>>> print set(re.sub('[\x00-\x7f]', '', u'£€£€'))
set([u'\xa3', u'\u20ac'])