2013-04-22 83 views
2

檢查任何價值的存在,我的名單像如何在列表中的蟒蛇

l = ['dd','rr','abcde'] 

l2 = ['ddf','fdfd','123'] 

我想要一個功能,如果任何來自l價值的l2存在哪些返回true。

現在可以進行部分匹配了。我的意思是該字符串應該給出l2

編輯:

輸出應該是在我的例子虛假

像真應該因爲ddddf

+0

什麼是您例如預期的輸出?另外,你到目前爲止嘗試過什麼? – cyroxx 2013-04-22 12:05:39

+0

這已經在這裏回答http://stackoverflow.com/questions/1388818/how-can-i-compare-two-lists-in-python-and-return-matches,是一個很好的解決方案 – user2307241 2013-04-22 12:07:48

+0

@cyroxx輸出應該是真的或假的 – user2294401 2013-04-22 12:10:06

回答

5

這將返回匹配返回true True如果來自l的任何值是l2中的任何值的子字符串:

any(l_value in l2_value for l_value in l for l2_value in l2) 
+0

最後一句我的意思是你的函數應該給出真正的輸出,因爲'dd'在l1中與'ddf'匹配 – user2294401 2013-04-22 12:09:12

+0

然後我的第二個例子就可以工作了。 – 2013-04-22 12:10:25

0
def match(): 
    for e in l: 
     for e2 in l2: 
      if e in e2: 
       return True 
    else: 
     return False 

這將包括部分匹配。

UPDATE: 使用列表理解:

[re.search(x,",".join(l2)) for x in l if re.search(x,",".join(l2)) is not None] and 'True' or 'False' 
+0

平行四邊形! – jamylak 2013-04-22 12:22:47