|

楼主 |
发表于 2023-9-20 20:53:30
|
显示全部楼层
- 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)
复制代码 |
|