how to group own any one common in the list?

Ho Yeung Lee jobmattcon at gmail.com
Tue Mar 28 05:37:35 EDT 2017


aaa = ["a","ab","c","b","bc"]

def similar(aa):
    similarset = []
    for ii in range(0,len(aa)):
        for jj in range(ii,len(aa)):
            if ii <> jj:
                print("("+str(ii)+","+str(jj)+")")
                if (aa[ii] in aa[jj]) or (aa[jj] in aa[ii]):
                    print(aa[ii] + " is similar with " + aa[jj])
                    similarset.append([aa[ii],aa[jj]])
    return similarset


print similar(aaa)


do not know how to edit following code to group own any one common in the list?

import itertools
bb = similar(aaa)
from operator import itemgetter
[list(g) for _,g in itertools.groupby(sorted(bb),(itemgetter(0,1) and itemgetter(1,0)))]

Expected result:

group 1 [['a', 'ab'], [['ab', 'b']]
group 2 [['b', 'bc'], [['c', 'bc']]






More information about the Python-list mailing list