如何检查列表中的字符串是否在另一个列表中?

时间:2011-10-20 21:53:48

标签: python list

假设我有2个名单:

a=['LOL','GG','rofl']
b=['5 KEK muh bobo LOL', 'LOL KEK bobo bobo GG']

如何检查b中第一个元素中的第一个元素是否存在?

4 个答案:

答案 0 :(得分:4)

就是这样:

a[0] in b[0] # will return True or False

也许你想检查所有这些:

set(i for i in a for j in b if i in j)

{i for i in a for j in b if i in j} #Python 2.7+

答案 1 :(得分:2)

Python实际上非常强大。你可以这样做。

a[0] in b[0]

答案 2 :(得分:1)

如果你只需要知道它是否在字符串中:

if a[0] in b[0]: pass

但是,上面的问题是这两个都会返回true:

if "LOL" in "a b LOL c": pass
if "LOL" in "a b xxLOLxx c": pass

因此,只要你的分隔符是一致的,你就会关心单词和简单存在:

if a[0] in b[0].split(" "): pass

如果您需要知道哪个词位置:

idx = b[0].split().index(a[0]) # note, throws a ValueError if not in the list

如果你需要知道字符串中的位置:

idx = b[0].find(a[0]) # returns -1 if not found

如果你想知道a中的每个元素是否在b的相应元素中(忽略任一列表中的额外条目):

[(i[0] in i[1]) for i in zip(a, b)] # to check for simple membership
[(i[0] in i[1].split()) for i in zip(a, b)] # to check for whole words

答案 3 :(得分:0)

您可以这样做:

a[0] in b[0]

如果可以在b的第一个元素中找到a的第一个元素,则返回True,否则返回False。