[pyar] Problema interesante: el anti-string

Pablo Ziliani pablo en kultroom.com
Mie Ago 4 17:00:22 ART 2010


Pablo Ziliani wrote:
> Roberto Alsina wrote:
>> On Wednesday 04 August 2010 16:41:27 Pablo Ziliani wrote:
>>  
>>>  >>> S1 = [u'papa', u'foo', u'pepe', u'bar', u'python']
>>>  >>> chars = sorted(set(''.join(S1)))
>>>  >>> antichars = dict(zip(chars, reversed(chars)))
>>>  >>> S = [(word, u''.join(antichars[char] for char in word)) for 
>>> word in
>>> S1] >>> sorted(S, key=lambda x:x[0])
>>> [(u'bar', u'tye'), (u'foo', u'phh'), (u'papa', u'fyfy'), (u'pepe', 
>>> u'frfr'), (u'python', u'fabohn')]
>>>  >>> sorted(S, key=lambda x:x[1])
>>> [(u'python', u'fabohn'), (u'pepe', u'frfr'), (u'papa', u'fyfy'), 
>>> (u'foo', u'phh'), (u'bar', u'tye')]
>>>     
>>
>> Interesante :-)
>>
>> Pero si quiero agregar un nuevo string tengo que regenerar antichars, 
>> no?
>
> a no ser que te generes antes un the_worldst_biggest_mega_antichars  :)

y, si te sirve (y dependiendo como necesites manejar estas excepciones), 
podés barajar los caracteres que no fueron definidos reeplazando 
antichars[char] por antichars.get(char, default), donde vos decidís qué 
peso querés darle a default (seguramente algo bajo, o '?' como maneja 
los errores el modo "replace" de str.decode)



More information about the pyar mailing list