Hi David, Python Dictionaries are unordered by definition. If you want an ordered dict, use an OrderedDict: http://docs.python.org/2/library/collections.html#collections.OrderedDict -- Brett Wilkins
On 14 March 2014 at 10:23:59 am, David Crisp ([email protected]) wrote: I am having a little problems with dicts returning data not alwyas in the same order depending on how long they are: The code reads in a line of address data from an excel spreadsheet as per the following block: asset_field_dict[config_row[2]] = list_row[2] asset_field_dict[config_row[3]] = list_row[3] asset_field_dict[config_row[4]] = list_row[4] asset_field_dict[config_row[5]] = list_row[5] asset_field_dict[config_row[6]] = list_row[6] asset_field_dict[config_row[7]] = list_row[7] asset_field_dict[config_row[8]] = list_row[8] asset_field_dict[config_row[9]] = list_row[9] I then simply print the dict out to see what it contains: print(asset_field_dict) IF I run this with only 3 eleemnts the dict is ALWAYS in the same order: (note: not correct: it should actually be Street No, Street Name, Street Type) {'Street Name': 'Janet', 'Street Type': 'Cres', 'Street No': 45.0} {'Street Name': 'Regen', 'Street Type': 'Court', 'Street No': 1.0} {'Street Name': 'Greenhills', 'Street Type': 'Road', 'Street No': 5.0} IF I run it with ALL the rows there then the data being read then the rows will be randomly returned in different orders. For instance (sorry about the formatting) First time I run the code: {'Street No': 45.0, 'Street Type': 'Cres', 'ZipCode': 3084.0, 'Y': -37.68926, 'Country': 'Australia', 'Street Name': 'Janet', 'State': 'Victoria', 'City': 'Bundoora'} {'Street No': 1.0, 'Street Type': 'Court', 'ZipCode': 3084.0, 'Y': -37.685274, 'Country': 'Australia', 'Street Name': 'Regen', 'State': 'Victoria', 'City': 'Bundoora'} {'Street No': 5.0, 'Street Type': 'Road', 'ZipCode': 3084.0, 'Y': -37.691476, 'Country': 'Australia', 'Street Name': 'Greenhills', 'State': 'Victoria', 'City': 'Bundoora'} Second time I run the code: {'Street Type': 'Cres', 'Street Name': 'Janet', 'Street No': 45.0, 'ZipCode': 3084.0, 'Country': 'Australia', 'State': 'Victoria', 'Y': -37.68926, 'City': 'Bundoora'} {'Street Type': 'Court', 'Street Name': 'Regen', 'Street No': 1.0, 'ZipCode': 3084.0, 'Country': 'Australia', 'State': 'Victoria', 'Y': -37.685274, 'City': 'Bundoora'} {'Street Type': 'Road', 'Street Name': 'Greenhills', 'Street No': 5.0, 'ZipCode': 3084.0, 'Country': 'Australia', 'State': 'Victoria', 'Y': -37.691476, 'City': 'Bundoora'} Third time i run the code: {'Y': -37.68926, 'City': 'Bundoora', 'State': 'Victoria', 'Country': 'Australia', 'Street Type': 'Cres', 'ZipCode': 3084.0, 'Street No': 45.0, 'Street Name': 'Janet'} {'Y': -37.685274, 'City': 'Bundoora', 'State': 'Victoria', 'Country': 'Australia', 'Street Type': 'Court', 'ZipCode': 3084.0, 'Street No': 1.0, 'Street Name': 'Regen'} {'Y': -37.691476, 'City': 'Bundoora', 'State': 'Victoria', 'Country': 'Australia', 'Street Type': 'Road', 'ZipCode': 3084.0, 'Street No': 5.0, 'Street Name': 'Greenhills'} HOW do I read the dict in the order it was written? If thats the wrong way of doing it, what would be the correct way of doing it? Regards, David Crisp _______________________________________________ melbourne-pug mailing list [email protected] https://mail.python.org/mailman/listinfo/melbourne-pug
_______________________________________________ melbourne-pug mailing list [email protected] https://mail.python.org/mailman/listinfo/melbourne-pug
