Friends, I wrote the following code to create two different list. One containing data points of all clusters and another containing list of individual cluster data points. The script is as follows.
#!/usr/bin/env python from sys import argv # STEP 1: a) ACCUMULATING ALL DATA POINTS IN AND A LIST b) CREATING LIST OF INDIVIDUAL CLUSTERS print argv[1], argv[2] data=[] # list of all data points all=[ [] for value in range(int(argv[2])) ] # Creating an empty list of lists of size n (No of clusters) def cluster(infile=argv[1],n=int(argv[2])): for index, line in enumerate(infile): if line.startswith('#Consensus'): line=line.split() data.extend(line[2]) # data now should contain data points of all clusters for value in range(n): for index, line in enumerate(data): if data[index] == str(value): zero=index+1 all[value].append(zero) #return data, all ( I even tried by un commenting the return statement ) print all print data The final print statement returns a empty list ie all and data. I have the following queries i) Why the print statement returns empty lists ii) Is return really required here, if i understand the namespace well, the function cluster actually modifies the global variables data and all. iii) I even tried by using a return statement but still the script returns empty list. iv) Is there any fancy or better of way of doing this python. Thanks, Bala
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor