如何使用python使两个水平列表相交?

2024-06-16 12:57:23 发布

您现在位置:Python中文网/ 问答频道 /正文

在我编写的代码中,我需要将两个水平列表相交,例如:

列表:

chr1    aatt
chr8    tagg
chr11   aaaa
chr7    gtag

列表B

^{pr2}$

我怎样才能得到这两个列表之间的交集?

期望结果:

chr7    gtag
chr11   aaaa

我还可以生成每行两个字符串的列表,如下所示:\

列表:

('chr1', 'aatt')
('chr8', 'tagg')
('chr11', 'aaaa')
('chr7', 'gtag')

列表B

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

在这种情况下,重要的是必须将这两列视为一列

谢谢你的时间!在


Tags: 字符串代码列表水平chr1aaaataggpr2
3条回答

使用“设置交点”。在

setC = set(listA) & set(listB)
listC = list(setC) # if you really need a list

转换为集合并相交:set(a) & set(b)

使用Pythonsets

listA = (
    ('chr1', 'aatt'),
    ('chr8', 'tagg'),
    ('chr11', 'aaaa'),
    ('chr7', 'gtag'),
)

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

combined = set(listA).intersection(set(listB))
for c, d in combined:
    print c, d

您也可以像这样使用&

^{pr2}$

相关问题 更多 >