我有两个不同的字典列表,list_a
和list_b
. 第一个字典列表包含核苷酸位点,另一个字典列表包含所有基因的开始和结束坐标。如果该位点落入基因坐标的范围内,则该位点属于该基因。然而,有时即使一个位点在范围之外,它仍然属于该基因。例如,站点来自list_a
,第二个字典 - 8 属于gene_b
.
list_a = [{'Ch': 'I', 'name': 'test_1', 'site': 2}, {'Ch': 'II', 'name': 'test_2', 'site': 8}, {'Ch': 'II', 'name': 'test_3', 'site': 10}]
list_b = [{'Ch': 'I', 'name': 'gene_a', 'start': 1, 'end': 3}, {'Ch': 'II', 'name': 'gene_b', 'start': 3, 'end': 6}]
这是工作正常的第一部分。
for item_a in list_a:
for item_b in list_b:
if item_a['Ch'] == item_b['Ch'] and item_a['site'] >= item_b['start'] and item_a['site'] <= item_b['end']:
print item_b['name'], item_a['site']
所以我想要这样的东西
if item_a['site'] >= item_b['start'] and item_a['site'] >= item_b['end']
and item_a['site'] <= the next site in the next dictionary in list_a...
or the beginning of the next gene in the next dictionary... ???
(我已经想出了如何按键排序字典列表)
我尝试使用该next()
功能,但无法使其正常工作。