我有两个python字典变量。一种是以id作为键,以长字符串作为值的dict,另一种是以不同类型的id作为键并以list作为值的dict。在
它们看起来像这样:
**dContigData**
Chromosome_8.8 AAACGCAATAACCAGAAAACCAATTTTTAAAATATTAAACCCAACGAAAT...
Chromosome_8.4 CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCC...
Chromosome_8.5 CTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCT...
Chromosome_8.6 GCCTGCTCGTAACCCTGACTCGTCCACCCCCAATCCGTCACCCCATTAAT...
Chromosome_8.7 CCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACC...
Chromosome_8.1 TCGCTTCGGCGGTCCTGCGGCATCTTTGTACTTCTTGTGGAAGTCGTCAA...
Chromosome_8.2 CCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACC...
Chromosome_8.3 TAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA...
另一个:
^{pr2}$因此,我编写了代码,将“dict e”中的键和“dict e”值[1]-1(第一种情况是306311,因为python的位置而减去1)中的dContigData value的子字符串打印到值[-1](第一种情况下是307475)。但是,虽然位置信息元素(列表中第一个元素之后的元素)的长度不同。e、 染色体(8.X)总是成对的。实际上,我要做的是迭代每个列表中的位置信息元素,并将dContigData的字符串作为子字符串。在
我的代码:
dContigData = readContigFasta()
#for key in dContigData:
# print(key, dContigData[key][0:50]+"...")
for key in e:
for contigID in dContigData:
if e[key][0] == contigID:
#print (key, e[key])
print (key, dContigData[contigID][e[key][1]-1:e[key][-1]]) # -1 for start base 0
编辑:好吧,你们中的很多人都听不懂我的问题,所以如果你不明白上面的含糊不清,请集中精力看下面的最终结果。;)
结果应该是(例如“dict e”中的第5个,有3个片段):
例如
MGG_00992T0 [896032]ATGGGCATTTCGGCTCGGGTCAGTAC[896144]...[896225]GCTGACCCATTACAGGTTGGGGGCTTTAA[896573]...[896654]ACCAAAGTTCCCACTTGTCCCCTGGGACCGAGATGTCCAACAATGA[897307]
[数字]还有。。。为了更容易理解(不包括在内)
有没有办法在循环时把一个字符串子串起来,然后连接回一个字符串?在
这是你问题的简化版本,说明我 根据编辑前的问题思考并使用 完整的字母表而不是DNA,以使位置更清晰。(请参阅 有关如何编写有用的minimal example的帮助文件。)
期望输出:
^{pr2}$如果这就是您的意思,那么python3代码将生成该输出。 请注意,字典键不是按任何特定顺序排列的。你可能更喜欢 为
e
使用列表列表,而不是列表字典,因为 不管怎样,你似乎只是在重复它。在如果我没弄错你的问题,这应该可以做到:
更普遍的解决方案:
相关问题 更多 >
编程相关推荐