我使用以下脚本生成了两个多组件列表:
list1 = list()
for line in infile1.readlines():
list1.append(line.split('\t'))
list2 = list()
for line in infile2.readlines():
list2.append(line.split(‘\t’))
列表如下所示:
list1 = ('1960', 'chr17', '+', 'RNF213'), ('1963', 'chr16', '+', 'SF3B3'), ('1964', 'chr4', '-', 'GPRIN3')...
list2 = ('1482', 'miR-K12-1'), ('1018', 'miR-K12-4-5p'), ('1960', 'miR-K12-12')...
list1中第一个条目的第一个元素(在本例中为“1960”)将与list2中一个或多个条目的第一个元素匹配。我想做的是找到每个匹配项,然后将list2条目的最后一个元素添加到list1条目中。所需输出的示例如下:
('1960', 'chr17', '+', 'RNF213', 'miR-K12-12')
我试过了,但什么也没得到:
result = []
for list1[0] in list1:
if list1[0] == list2[0]:
result.append((list1[0:], list2[1]))
编辑:不要使用这种方法。我不使用它,因为其他人可能可以从@Martijn的评论中学习。你知道吗
将列表2中的值放入字典;第一列中的每个唯一值都指向第二列中的值列表。因为您有制表符分隔的值,所以实际上应该在这里使用^{} module :
dict.setdefault()
如果字典中还没有键,则设置一个默认值(此处为列表对象)。这允许我们为第一个值附加到一个空列表,然后为其余值附加到已经存在的列表。你知道吗现在,您可以在处理另一个文件时轻松地查找匹配行:
演示:
相关问题 更多 >
编程相关推荐