gpt4 book ai didi

python字典,将每个奇数行作为键,偶数行作为文件中的值

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:41 24 4
gpt4 key购买 nike

您好,我有一个这样的文本文件:

>NM_145914.2:212
TCTGATGGTAAAAGTCGAGGAGAAAGAAGA
>NM_000614.3:1086
ATTCAATTTAAAATCAGACTCTTTAGTTGA
>NM_012096.2:2808
CAGTTAAGGTTTCAAATTGTGGCAGGTGGT
>NM_173465.3:1682
GTGCGTCGGGTGAGAGAGGCCCCAGCGGCC
>NM_001198858.1:490
CAACCACCACAACCTGCTGGTCTGCTCGGT
......more lines in same style......

我想要的是:

从上面的文件中读取,将第 1、3、5、7 行...设置为字典键,将第 2、4、5、8 行...设置为字典值。

我的代码是:

query_dict = {}
nameAt = 1
sequenceAt = 2

while name in range(totalLines):
line1 = linecache.getline(filename, nameAt)
line2 = linecache.getline(filename, sequenceAt)

query_dict[line1] = line2
nameAt = nameAt + 2
sequenceAt = sequenceAt + 2

代码有效,但速度非常慢,因为我的文本文件的最少行数是 200,000 行。有没有人有更好的方法来做到这一点?

非常感谢。

==============补充问题==================

这里是fastq格式,每次读取(记录)4行:

@>NM_052972.2:11:1054:1780:889
CTTCGACATCTCCGGCAACCCCTGGATCTG
+>NM_052972.2:11:1054:1780:889
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@>NM_080660.3:12:914:1802:542
CCTGTATGGCTACTGCAACCTCAAGGATAA
+>NM_080660.3:12:914:1802:542
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@>NM_176814.3:712:2706:4242:98
ACAGAGTAAAAGAGAGGCTGACTTAATAAA
+>NM_176814.3:712:2706:4242:98
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
...... more lines in same style ......

我想创建一个字典,键是第 1 行,值是每 4 行记录中的第 2 行。

字典看起来像:

{'@>NM_052972.2:11:1054:1780:889':'CTTCGACATCTCCGGCAACCCCTGGATCTG', 
'@>NM_080660.3:12:914:1802:542':'CCTGTATGGCTACTGCAACCTCAAGGATAA',
'@>NM_176814.3:712:2706:4242:98':'ACAGAGTAAAAGAGAGGCTGACTTAATAAA',
..... more keys and values ......
}

谢谢。

最佳答案

像这样:

with open('filename') as f:
query_dict = {line.strip():next(f).strip() for line in f}

输出:

>>> from pprint import pprint
>>> pprint(query_dict)
{'>NM_000614.3:1086': 'ATTCAATTTAAAATCAGACTCTTTAGTTGA',
'>NM_001198858.1:490': 'CAACCACCACAACCTGCTGGTCTGCTCGGT',
'>NM_012096.2:2808': 'CAGTTAAGGTTTCAAATTGTGGCAGGTGGT',
'>NM_145914.2:212': 'TCTGATGGTAAAAGTCGAGGAGAAAGAAGA',
'>NM_173465.3:1682': 'GTGCGTCGGGTGAGAGAGGCCCCAGCGGCC'}

更新:

with open('foo.txt') as f:
dic = {}
for line in f:
dic[line.strip()] = next(f).strip()
next(f);next(f) #Drop next two lines
from pprint import pprint
pprint(dic)

输出:

{'@>NM_052972.2:11:1054:1780:889': 'CTTCGACATCTCCGGCAACCCCTGGATCTG',
'@>NM_080660.3:12:914:1802:542': 'CCTGTATGGCTACTGCAACCTCAAGGATAA',
'@>NM_176814.3:712:2706:4242:98': 'ACAGAGTAAAAGAGAGGCTGACTTAATAAA'}

关于python字典,将每个奇数行作为键,偶数行作为文件中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com