我有這樣一個bam.txt
文件:
exomesinglesample_out/bam/pfg001G.GRCh38DH.target.bam
exomesinglesample_out/bam/pfg002G.GRCh38DH.target.bam
exomesinglesample_out/bam/pfg014G.GRCh38DH.target.bam
另一個文件bai.txt
:
exomesinglesample_out/bam/pfg001G.GRCh38DH.target.bai
exomesinglesample_out/bam/pfg002G.GRCh38DH.target.bai
exomesinglesample_out/bam/pfg014G.GRCh38DH.target.bai
我想創建一個字典列表,其鍵總是這樣:
keys = ['bam','bam_index']
d = dict.fromkeys(keys)
l = [d for x in range(3)]
print(l)
[{'bam': None, 'bam_index': None}, {'bam': None, 'bam_index': None}, {'bam': None, 'bam_index': None}]
字典應該是這樣的,而不是具有None
的值:
[{'bam': 'exomesinglesample_out/bam/pfg001G.GRCh38DH.target.bam', 'bam_index': 'exomesinglesample_out/bam/pfg001G.GRCh38DH.target.bai'}, {'bam': 'exomesinglesample_out/bam/pfg002G.GRCh38DH.target.bam', 'bam_index': 'exomesinglesample_out/bam/pfg002G.GRCh38DH.target.bai'}, {'bam': 'exomesinglesample_out/bam/pfg014G.GRCh38DH.target.bam', 'bam_index': 'exomesinglesample_out/bam/pfg014G.GRCh38DH.target.bai'}]
換句話說,詞典列表中第一個詞典的第一個值必須具有bam.txt
的第一行,列表中第一個詞典的第二個值必須具有bai.txt
的第一行,一直到兩個文件中最后一行的末尾。
我知道dict
值不能被索引,因為字典在python中是無序的數據類型,所以這可能需要用tuples
generators
或list
來解決。
您可以使用
zip()
逐行遍歷這兩個文件,并準備字典:Output: