【发布时间】:2011-07-27 16:42:11
【问题描述】:
我已经被这个问题困扰了一段时间,我希望有人能提供帮助。我正在尝试遍历名为 transcripts_test.csv 的 csv 文件中的列 row[1],并且对于 row[1] 中的每个字符串,我从另一个名为 coors_test.csv 的 csv 文件中创建名为 OCR_dict 的字典中的相同字符串。
transcripts_test.csv 包含:
ENST00000347869,chr3,50126341,50156454,1
ENST00000452166,chr14,21679063,21737583,2
ENST00000452166,chr14,21679063,21737583,2
coors_test.csv 包含:
chr3,141030221,141031065,Valid_10009,1000,+
chr6,141030221,141031065,Valid_10005,1000,+
chr14,141047080,141047610,Valid_10006,1000,+
这是我的代码:
import csv
with open('coors_test.csv', mode='r') as coors_infile:
coors_reader = csv.reader(coors_infile)
for row in coors_reader:
chromo = row[0]
start = row[1]
end = row[2]
coordinates_list = [chromo,start,end]
OCR_dict = {row[3]:coordinates_list}
for keys,values in OCR_dict.items():
OCR_chromosome = values[0]
with open('transcripts_test.csv', mode='r') as transcripts_infile:
transcripts_reader = csv.reader(transcripts_infile)
for row in transcripts_reader:
transcript_chromosome = row[1]
if transcript_chromosome == OCR_chromosome:
print(transcript_chromosome, keys, OCR_chromosome)
当我执行上面的代码时,我得到的输出是:
chr14 Valid_10006 chr14
chr14 Valid_10006 chr14
我正在寻找的输出是:
chr3 Valid_10009 chr3
chr14 Valid_10006 chr14
chr14 Valid_10006 chr14
为什么我的代码不匹配并打印chr3 Valid_10009 chr3?任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: python csv dictionary