Hallo , Andre thanks a lot for your help, seems to me like my script can work with your function.
I found this searching the internet: cluster 1.1.1b2 python-cluster is a "simple" package that allows to create several groups (clusters) of objects from a list >>> from cluster import * >>> data = [12,34,23,32,46,96,13] >>> cl = HierarchicalClustering(data, lambda x,y: abs(x-y)) >>> cl.getlevel(10) # get clusters of items closer than 10 [96, 46, [12, 13, 23, 34, 32]] >>> cl.getlevel(5) # get clusters of items closer than 5 [96, 46, [12, 13], 23, [34, 32]] I would like to give it a try because I have the impression that it can be helpful too. My problem now is the lambda function, I was wondering if someone could be so kind as to give me an example that could work in my list with nested tuples. Thanks again! Carlos Andre Engels wrote: > 2007/1/16, Carlos <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>: > > Hello to everybody, > > I have a question that I think is a little related to clustering, > I have > a list of lists, like this: > > List = [[1,5],[6,8],[48,10],[99,56]] > > The list is composed by a large number of lists not just four, and > each > 'interior' list contains two numbers that are the location of an > object > in a plane, so they are X and Y coordinates, my question is: > > Can I use this list to evaluate how many points are in a given range? > Thats is taking the highest and lowest values for X an Y and, lets say > divide that range in 10 regions, then get the number of objects on > each > region. Is this possible? and if yes, how canI do it? I ask this > because > as you know my python skills are not that great :) > > > First, this feels like a list of tuples rather than a list of lists; > however, tuples and lists don't differ that much in their behaviour, > so there's nothing really lost. > > And yes, it is possible. An inline if would be the way I would resolve > that: > > def withinrange(list,xmin,xmax,ymin,ymax): > # Get the elements of list for which the first part of the pair is > between xmin and xmax > # (inclusive) and the second between ymin and ymax. > return [c for c in list if xmin <= c[0] <= xmax and ymin <= c[1] > <= ymax] > > The longer but clearer method of doing the same would be: > > def withinrange(list,xmin,xmax,ymin,ymax): > templist = [] > for c in list: > if xmin <= c[0] <= xmax and ymin <= c[1] <= ymax: > templist.append(c) > return templist > > -- > Andre Engels, [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > ICQ: 6260644 -- Skype: a_engels > ------------------------------------------------------------------------ > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.432 / Virus Database: 268.16.12/630 - Release Date: 1/15/2007 > 8:28 PM > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor