lis = ['ACT', 'CTG', 'TGC', 'GCC', 'CCT', 'CTG', 'TGA', 'GAC', 'ACT', 'CTA']
gra = {'ACT': ['CTG', 'CTA'], 'CTG': ['TGC', 'TGA'], 'TGC': ['GCC'], 'GCC': ['CCT'], 'CCT': ['CTG'], 'TGA': ['GAC'], 'GAC': ['ACT']}
def getnum(dic):
listlen = []
for i,j in dic.items():
m = len(j)
listlen.append(m)
return listlen
a = []
n = len(lis)
listlen = getnum(gra)
keys = list(gra.keys())
for i in range(n):
if i == 0:
temp = list(gra.keys())[0]
a.append(temp)
print(1,a)
a.append(gra[temp][0])
print(2,a)
m = keys.index(temp) # 该节点在字典的位置
t = a[-1] #上一结点
print(3,t)
m = keys.index(t)
print(4,m)#该节点在字典的位置
num_kids = listlen[m] #该节点的子节点个数
temp = gra[t][0]
print(5,temp)
if num_kids > 1:
gra[temp].pop(0)
a.append(temp)
print(a)
|