[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