在这里遇到问题所以希望可以使用一些帮助。
我有一个文本文件,每行都有一个ID号和一组“描述符”。描述符对于每一行可以是唯一的也可以不是唯一的(它们可以在整个文档中多次使用)。
我基本上想要识别包含某个描述符的所有ID号...我的代码正在运行,但它只找到描述符的第一次出现,而不是所有这些。有什么快速解决方法吗?
所有描述符都在列表中。 文本文件示例:
ID_45555 (tab) some irrelevant data (tab) **DESCRIPTOR1** DESCRIPTOR2 DESCRIPTOR3
ID_55555 (tab) some irrelevant data (tab) DESCRIPTOR200 **DESCRIPTOR1** DESCRIPTOR599
代码:
for line in file:
line = line.strip()
line = line.split("\t")
IDNUMBER = line[0]
DESCRIPTOR = line[2]
for x in total_list:
if x in DESCRIPTOR:
print x, DESCRIPTOR
答案 0 :(得分:0)
我建议使用dict,将描述符作为键,将相应的ID作为值。您浏览文件并在每行,将ID添加到每个描述符下的字典中的列表中。例如:
by_descriptors = collections.defaultdict(list)
for line in file:
id, _, descriptors = line.strip().split("\t")
for d in descriptors.split():
by_descriptors[d].append(id)
# to find all IDs for a given descriptor:
by_descriptors.get(id, [])