[EMAIL PROTECTED] wrote: > Hi all, > > I'm analyzing some data that has a lot of country data. What I need > to do is sort through this data and output it into an excel doc with > summary information. The countries, though, need to be sorted by > region, but the way I thought I could do it isn't quite working out. > So far I can only successfully get the data alphabetically. > > Any ideas? > > import xlrd > import pyExcelerator > > def get_countries_list(list): it isn't a good idea to use a built-in object as a variable name > countries_list=[] > for country in countries:ii > if country not in countries_list: > countries_list.append(country) > > EU = ["Austria","Belgium", "Cyprus","Czech Republic", > "Denmark","Estonia", "Finland"] > NA = ["Canada", "United States"] > AP = ["Australia", "China", "Hong Kong", "India", "Indonesia", > "Japan"] > Regions_tot = {'European Union':EU, 'North America':NA, 'Asia > Pacific':AP,} i would create a class to capture country information, e.g. class country(object): def __init__(self, name, size = 0, population = 0): self.name = name self.size = size self.poplation = population
def __cmp__(self, other): if self.name < other.name: return -1 elif self.name > other.name: return 1 else: return 0 then you can set up the world as world = {'NA': [country("United States"), country("Canada")], \ 'Europe': [country("Belgium"), country("Austria")]} now you can sort and print it easy for region in world: print region lands = world[region] lands.sort() for land in lands: print land.name the sort works because the country objects have a method __cmp__ > > path_file = "c:\\1\country_data.xls" > book = xlrd.open_workbook(path_file) > Counts = book.sheet_by_index(1) > countries= Counts.col_values(0,start_rowx=1, end_rowx=None) > > get_countries_list(countries) > > wb=pyExcelerator.Workbook() > matrix = wb.add_sheet("matrix") > > n=1 > for country in unique_countries: > matrix.write(n,1, country) > n = n+1 > > wb.save('c:\\1\\matrix.xls') > > > i'm not familiar with the excel modules so i can't help you with that -- http://mail.python.org/mailman/listinfo/python-list