Подскажите пожалуйста как решить такую задачку:
Необходимо в строке оставить уникальные цифры или буквы, остальные удалить.
Я попробывал вот так:
str='ВРЕМЯ НЕ ЖДЁТ' set( x for x in str if x.isalnum() )
set([])
Как решить?
str='ВРЕМЯ НЕ ЖДЁТ' set( x for x in str if x.isalnum() )
set([])
str='ВРЕМЯ НЕ ЖДЁТ' str=unicode( str, 'UTF-8' ) # или str=u'ВРЕМЯ НЕ ЖДЁТ' set( x for x in str if x.isalnum() )
set([u'\u0401', u'\u0420', u'\u0423', u'\u0422', u'\u0427', u'\u042f', u'\u0410', u'\u0418', u'\u041d', u'\u041f'])
Dobrodelесть же генератор множеств. лучше его юзатьset( x for x in str if x.isalnum() )
{ x for x in str if x.isalnum() }
>>> s = 'abcabc123123!@#$' >>> g = filter(str.isalnum, set(s)) >>> set(g) {'a', 'c', 'b', '1', '3', '2'} >>>
name='ВРЕМЯ НЕ ЖДЁТ' inword = '[\s,.:;"\'§±><)(*&^%$@!~`]' set(re.sub( inword, '', name ))
DobrodelАлгоритм-то другой получился.
Я протестировал - получил что re.sub работает не хуже, по времени обработки.
name='ВРЕМЯ НЕ ЖДЁТ©'