- 论坛徽章:
- 26
|
本帖最后由 substr函数 于 2015-12-15 22:37 编辑
回复 21# 咏咏672418539
亲,感谢点出错误 [ ]
试试这个更新版本
save
E1-2 0.857143
E1-3 0.642857
E2-3 0.500000
code- #!/usr/bin/python2
- # coding: utf-8
- from collections import defaultdict as DICK
- from itertools import combinations as COMB
- FILE = 'data' # file name
- SAVE = 'save' # save name
- HEAD = '>' # change '>' ???
- D = DICK(dict)
- S = open(SAVE, 'w')
- K = ''
- for L in open(FILE):
- if L.startswith(HEAD):
- K = L.rstrip().split(HEAD)[1]
- else:
- k, _, v = L.split()
- D[K][k] = float(v)
- for k1, k2 in COMB(sorted(D.keys()), 2):
- ks = set(D[k1].keys() + D[k2].keys())
- Eij = sum(abs(D[k1].get(k, 0) - D[k2].get(k, 0)) for k in ks)
- S.write('E%s-%s\t%f\n' % (k1, k2, Eij))
- #print 'E%s-%s\t%f' % (k1, k2, Eij)
复制代码 if int
>11
AGTGAA 2 0.285714
.....- #!/usr/bin/python2
- # coding: utf-8
- # 2015-12-15_Q1
- from collections import defaultdict as DICK
- from itertools import combinations as COMB
- FILE = 'data' # file name
- SAVE = 'save' # save name
- HEAD = '>' # change '>' ???
- D = DICK(dict)
- S = open(SAVE, 'w')
- K = None
- for L in open(FILE):
- if L.startswith(HEAD):
- K = int(L.rstrip().split(HEAD)[1])
- else:
- k, _, v = L.split()
- D[K][k] = float(v)
- for k1, k2 in COMB(sorted(D.keys()), 2):
- ks = set(D[k1].keys() + D[k2].keys())
- Eij = sum(abs(D[k1].get(k, 0) - D[k2].get(k, 0)) for k in ks)
- S.write('E%s-%s\t%f\n' % (k1, k2, Eij))
复制代码 |
|