如果一个列表中的字符串是另一个列表的一部分,如何查找:
b_names = ['robert', 'jon', 'arya']
a_names = ['rya', 'fish']
def filterA(name):
for string in b_names:
if name in string:
return True
else :
return False
final_list = filter(filterA,a_names)
final_list为空,应该包含字符串rya,因为rya作为第一个列表中arya中的子字符串存在。
这里有什么错误?
答案 0 :(得分:1)
您的name
循环过早结束。
如果string
不在False
,则返回Robert
。由于b_names
是Jon
中的第一项,它会结束循环并且不会继续Arya
或return False
。您需要在for
循环
b_names = ['robert', 'jon', 'arya']
a_names = ['rya', 'fish']
def filterA(name):
for string in b_names:
if name in string:
return True
return False
final_list = filter(filterA, a_names)
print final_list
>>> ['rya']
diff_session.show(8,False):
|userid|platform |previousTime |currentTime |timeDifference |
|1234 |13 |null |2017-07-20 10:49:30.027|null |
|1234 |13 |null |2017-07-20 10:04:23.1 |null |
|1234 |13 |2017-07-20 10:04:23.1 |2017-07-20 10:06:23.897|120 |
|1234 |13 |2017-07-20 10:04:23.897|2017-07-20 10:40:29.472|2166 |
|1234 |13 |2017-07-20 10:40:29.472|2017-07-20 10:40:50.347|11 |
|1234 |13 |2017-07-20 10:40:30.347|2017-07-20 10:51:16.458|646 |
|1234 |13 |2017-07-20 10:51:16.458|2017-07-20 10:51:17.427|1 |