2012-08-31 142 views

回答

2

因爲emplike_list都是列表,所以您實質上是在列表中查找列表。

如果你想列表emp內的任何元素匹配,您可以遍歷列表如下:

for element in emp: 
    if element in like_list: 
     --do something-- 
    else: 
     --do something else-- 

另外,如果like_list是列表的列表,你if陳述會的工作。

0

如果emplike_list都是字符串列表,則表達式emp in like_list[j]正在檢查列表是否是單個字符串的成員。當我用下面的代碼測試了它我得到一個稍微不同的TypeError

>>> emp = ["foo", "bar"] 
>>> like_list = ["baz", "quux"] 
>>> if emp in like_list[0]: 
...  print "found" 
... 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'in <string>' requires string as left operand, not list 

這是說,你不能在一個字符串成員資格測試非字符串。我認爲解決這個問題會非常簡單,但並不完全清楚你想要做什麼。

如果你想檢查字符串like_list[j]emp的字符串作爲一個字符串,使用一個:

if any(s in like_list[j] for s in emp): 

相反,如果你想看看like_list[j]等於字符串中的一個emp ,則需要將in表達式轉換爲:

if like_list[j] in emp: 
相關問題