Кажется, я нашла ошибку и снова прошу вашей помощи.
mas=[((1,'a',5),(1,'b',4)),((2,'a',2),(2,'b',1)),((3,'a',2),(3,'b',5)),((4,'a',2),(4,'b',1)),((5,'a',5),(5,'b',4))]
t=1
clas=[[1,4],[2,3,5]]
while t==1:
t=0
print('Top of loop: ', clas)
for clas_i, qw in enumerate(clas):
print('clas_i = ', clas_i)
print('qw = ', qw)
if isinstance(qw, int):
print('its int!')
continue
statver=[['',''],['',''],['',''],['',''],['',''],['','']]
for er in qw:
mq=mas[er-1]
print('mq:', mq)
for sa in mq:
print('sa:', sa)
for s, clasn in enumerate(clas):
#print('clasn: ', clasn)
x, y, z = sa
if z in clasn:
val = '%s%d' % (y, s)
if y == 'a':
statver[x][0] = val
else:
statver[x][1] = val
break
print('statver: ', statver)
newclas=[0,0,0,0,0,0,0,0,0,0]
checkn=[]
for ver in qw:
for i2, ver1 in enumerate(qw):
if i2 in checkn:
continue
if statver[ver]!= statver[ver1] and statver[ver]!=['',''] and statver[ver1]!=['',''] :
print('statver[ver] ',statver[ver],'statver[ver1] ',statver[ver])
newclas[ver]=ver1
print('newclas',newclas)
#newclas.append(ver1)
checkn.append(ver1)
print('checkn',checkn)
print('ver1: ',ver1)
#print('newclas:',newclas)
t=1
print('t = ', t)
else:
#print('ni4ego ne pomenyali')
t=0
checkn.append(ver)
print('ver :',ver)
print('checkn:', checkn)
#print('newclas:', newclas)
if t==1:
print('i suda')
newclas = filter(lambda a: a!=0, newclas)
del clas[clas_i]
clas += [newclas]
#print('t = ', t)
print('newclas:', newclas)
for ver in qw:
for i2, ver1 in enumerate(qw):
if i2 in checkn:
continue
if statver[ver]!= statver[ver1] and statver[ver]!=['',''] and statver[ver1]!=['',''] :
checkn:
Хотя по идее должно бысть checkn=
А в newclas записываются лишние вершины ( по идее там должно было быть только 3, а 2 и 5 отдельно).
Но проблема, мне кажется, в continue, поскольку перехода на новую вершину не получается.