簡體   English   中英

比較兩個列表時查找匹配的字符串

[英]Finding matching strings when comparing two lists

我試圖比較兩個列表,看看列表中是否有任何匹配的字符串。

讓我們說list_1

['GAAGGTCGAA', 'GAAGGTCGA', 'AAGGTCGAA', 'GAAGGTCG', 'AAGGTCGA', 'AGGTCGAA', 'GAAGGTC', 'AAGGTCG', 'AGGTCGA', 'GGTCGAA', 'GAAGGT', 'AAGGTC', 'AGGTCG', 'GGTCGA', 'GTCGAA', 'GAAGG', 'AAGGT', 'AGGTC', 'GGTCG', 'GTCGA', 'TCGAA', 'GAAG', 'AAGG', 'AGGT', 'GGTC', 'GTCG', 'TCGA', 'CGAA', 'GAA', 'AAG', 'AGG', 'GGT', 'GTC', 'TCG', 'CGA', 'GAA', 'GA', 'AA', 'AG', 'GG', 'GT', 'TC', 'CG', 'GA', 'AA', 'G', 'A', 'A', 'G', 'G', 'T', 'C', 'G', 'A', 'A']

list_2

['CCTCGGGA', 'CCTCGGG', 'CTCGGGA', 'CCTCGG', 'CTCGGG', 'TCGGGA', 'CCTCG', 'CTCGG', 'TCGGG', 'CGGGA', 'CCTC', 'CTCG', 'TCGG', 'CGGG', 'GGGA', 'CCT', 'CTC', 'TCG', 'CGG', 'GGG', 'GGA', 'CC', 'CT', 'TC', 'CG', 'GG', 'GG', 'GA', 'C', 'C', 'T', 'C', 'G', 'G', 'G', 'A', '', '', '', '', '', '', '', '', '', 'CCTCGGG', '', '', '', '', '', '', '', '', '']

我知道“TCG”在兩個列表中,但我可以使用什么類型的函數來確定python中的這個? 我嘗試了一個for循環和許多其他內置函數,但我無法讓它工作。

bool(set(list_1) & set(list_2))

這實際上很容易設置

print set(list_1) & set(list_2)
print bool(set(list_1) & set(list_2))
# set(['A', 'C', 'G', 'CG', 'GG', 'T', 'GA', 'TCG', 'TC']) //common strings
# true //Boolean result

DEMO

http://ideone.com/y0GltE

如果您需要的不僅僅是一個布爾變量,這是一個使用for循環的解決方案。

for item1 in list1:
    for item2 in list2:
        if item1 == item2:
            print item1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM