И как пересечь диапазон столбцов между двумя горизонтальными списками? - PullRequest
0 голосов
/ 16 мая 2011

В коде, который я пишу, мне нужно пересечь два горизонтальных списка вроде:

listA:

('name1','chr1', 'aatt')
('name2','chr11', 'aaga')
('name2','chr11', 'aaaa')
('name3','chr7', 'gtag')

listB

('chr8', 'tagt')
('chr1', 'tttt')
('chr7', 'gtag')
('chr11','aaaa')
('chr9', 'atat')

#This lists are compounded by one str per line, wich it has a "/t" in the middle. 
#Also note that are in different order

Какможно получить строки из списка A, чьи столбцы 2 и 3 пересекаются со списком B?

желаемый результат:

name2   chr11   aaaa
name3   chr7    gtag

Решение не просто "set (listA) & set(listB) "потому что список имеет разное количество столбцов

спасибо за ваше время!

1 Ответ

3 голосов
/ 16 мая 2011
set_b = set(list_b)
result = [x for x in list_a if (x[1], x[2]) in set_b]
...