Data type sequence error:Dictionary

Brian van den Broek bvande at po-box.mcgill.ca
Wed Jul 28 04:26:58 EDT 2004


Derek Thomson said unto the world upon 28/07/2004 04:01:
> On Wed, 28 Jul 2004 15:56:00 +0800, BlackWhite <live1024 at hotmail.com> wrote:
> 
>>Source code:
>>d={"x":42,"y":3.14,"z":9}
>>d.keys()
>>['y','x','z']                 //Why y in font  of x
>>d.values()
>>[3.1400..01,42,9]            //Why 3.140000000000000001 should not have 1 in
>>the end
>>
>>Why this happened?
>>
> 
> 
> Because the items in a dictionary are not guaranteed to be kept in the
> order you put them in there. If you want to preserve ordering, use a
> list or a tuple. Here's an example that uses tuples:
> 
> 
>>>>items = ( ("x", 42), ("y", 3.14), ("z", 9) )
>>>>items
> 
> (('x', 42), ('y', 3.1400000000000001), ('z', 9))

Hi,

for the second question (about the trailing ...01) see 
<http://docs.python.org/tut/node15.html>, particularly the subsection on 
Representation Error.

Best,

Brian vdB




More information about the Python-list mailing list