In [10]:
import itertools
In [11]:
main =[]
main.append(sorted(['B','C', 'A' ,'F', 'H']))
main.append(sorted(['F', 'E', 'C', 'H']))
main.append(sorted(['E' ,'D', 'B']))
main.append(sorted(['A', 'C' ,'H', 'F']))
main.append(sorted(['E', 'F' ,'A']))
main.append(sorted(['D', 'H' ,'B']))
main.append(sorted(['E', 'C' ,'F', 'B', 'D']))
main.append(sorted(['A', 'H' ,'C', 'E']))
main.append(sorted(['G', 'A', 'E']))
main.append(sorted(['B', 'H', 'E']))
In [12]:
lst={}
def addelement(element):
if element not in lst.keys():
lst[element]=1
else:
lst[element]+=1
In [13]:
for i in main:
for j in i:
addelement(j)
In [14]:
print len(lst.keys())
for key in lst.keys():
print key,lst[key]
#if lst[key]<3:
# lst.pop(key,None)
print '------ after cleaning--------'
for key in lst.keys():
print key,lst[key]
print len(lst.keys())
In [15]:
lst2items={}
def addelement2(el):
el = ''.join(map(str.strip,el))
if el not in lst2items.keys():
lst2items[el]=1
else:
lst2items[el]+=1
In [16]:
def checkcontain(myelements,thelist):
for i in myelements:
if i.strip() not in thelist:
return False
return True
In [17]:
newcomb = itertools.combinations(lst.keys(), 2)
for i in newcomb:
for j in main:
if checkcontain(i,j):
addelement2(i)
In [18]:
for key in lst2items.keys():
print key,lst2items[key]
if lst2items[key]<3:
lst2items.pop(key,None)
print '------ after cleaning--------'
for key in lst2items.keys():
print key,lst2items[key]