Girish Sahani wrote: > I have a list of strings all of length k. For every pair of k length > strings which have k-1 characters in common, i want to generate a k+1 > length string(the k-1 common characters + 2 not common characters). > e.g i want to join 'abcd' with bcde' to get 'abcde' but i dont want to > join 'abcd' with 'cdef' > Currently i'm joining every 2 strings, then removing duplicate characters > from every joined string and finally removing all those strings whose > length != k+1.
Hum, since your code is not syntactically correct, anything will run faster :) I'd favor the following, that I find most readable sets = map(set,list_of_strings) res = set(''.join(sorted(s1|s2)) for s1 in sets for s2 in sets if len(s1^s2)==2) unless performance is really an issue Here's the code i've written: > > for i in range(0,len(prunedK) - 1,1): > if k in range(1,len(prunedK),1) & i+k <= len(prunedK) -1: > colocn = prunedK[i] + prunedK[i+k] > prunedNew1.append(colocn) > continue > for string in prunedNew1: > stringNew = withoutDup(string) > prunedNew.append(stringNew) > continue > > But this one is quite bad in the time aspect :( how do you know ? > Thanks in advance, > girish you should do your own homework -- http://mail.python.org/mailman/listinfo/python-list