[pyar] posible Bug?

Angel Freire cuerty en gmail.com
Lun Mar 16 00:31:01 ART 2015


2015-03-15 23:42 GMT-03:00 koxmoz Kox <koxmoz en gmail.com>:

>  supongamos que yo deliro y flashe al escribir, pero el diccionario esta
> mal ordenado e hice copy/paste
>
> runfile('/home/koxmoz/Python/checkIO/most-wanted-letter.py',
> wdir='/home/koxmoz/Python/checkIO')
> {u's': 1, u'b': 1, u'd': 1, u'f': 1}
> Traceback (most recent call last):
>
>   File "<ipython-input-3-19a95f311486>", line 1, in <module>
>     runfile('/home/koxmoz/Python/checkIO/most-wanted-letter.py',
> wdir='/home/koxmoz/Python/checkIO')
>
>   File
> "/usr/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py",
> line 601, in runfile
>     execfile(filename, namespace)
>
>   File
> "/usr/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py",
> line 73, in execfile
>     builtins.execfile(filename, *where)
>
>   File "/home/koxmoz/Python/checkIO/most-wanted-letter.py", line 21, in
> <module>
>     assert checkio(u"fsbd") == "b", "Hello test"
>
> AssertionError: Hello test
>
>
>
> On 15/03/15 23:34, Lucio Torre wrote:
>
>  In [1]: "b" < "s"
> Out[1]: True
>
>
> 2015-03-15 23:25 GMT-03:00 koxmoz Kox <koxmoz en gmail.com>:
>
>> Hola gente les escribía porque estaba jugando en CheckIO, y en uno de los
>> ejercicios tenia que obtener la letra que mas repitiera en un string y en
>> caso de empate la letra que este primero en el alfabeto... lo resolví
>> usando un diccionario, el tema es que funciona para todos los string
>> excepto para el string "fsbd" el diccionario lo ordena de la siguiente
>> manera:
>>
>>     {u's': 1, u'b': 1, u'd': 1, u'f': 1}
>>
>> que debería estar ordenado alfabéticamente (por lo que tengo entendido),
>> estuve probando con la consola y yo se que:
>>
>>     "a" < "b"
>>     True
>>
>> pero tambien me dice:
>>
>>     "b" < "s"
>>     False
>>     "s" > "b"
>>     True
>>
>> pero si pongo:
>>
>>     "a" < "s" < "b"
>>     False
>>
>> no se muy bien que esta pasando... alguien que pueda decirme si es un bug
>> o es algo mas que no se?
>> desde ya saludos y gracias por leer!!!
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.arhttp://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>

Ojo, los diccionarios no son ordenados.

De la documentación de estructuras de datos de Python [0]: "It is best to
think of a dictionary as an unordered set of key: value pairs..."

Si queres que las claves de tu diccionario esten ordenadas entonces
deberias usar collections.OrderedDict [1]

[0] https://docs.python.org/2/tutorial/datastructures.html
[1]
https://docs.python.org/2/library/collections.html#collections.OrderedDict

-- 
http://blog.cuerty.com

"If you want to set off and go develop some grand new thing, you don't need
millions of dollars of capitalization. You need enough pizza and Diet Coke
to stick in your refrigerator, a cheap PC to work on and the dedication to
go through with it."
- John Carmack
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150316/0652553f/attachment.html>


More information about the pyar mailing list