在字符串数组

时间:2018-05-20 19:11:40

标签: python

我有两个列表,一个包含字符串,另一个包含要找到的单词。

让我们说:

list1 = ['Hi I am Tayyab','I am a python programmer', 'I am new To python' ]

list2 = ['Tayyab','Programmer']

我想检查列表1是否包含list2中的字词。

如果是,则返回list1中的完整字符串。

在上述情况下,我希望返回list1中的前两项,因为前两项包含'Tayyab''Programmer'字样。

3 个答案:

答案 0 :(得分:0)

一种方法是使用MBP:~ jhartman$ echo '{"ABC":"ABC1234"}' | sed 's/.*"\(.*\)".*"\(.*\)".*/\1\2/g' ABCABC1234 列表理解:

str.casefold

答案 1 :(得分:0)

最简单的方法可能是

>>> for word in list2:
...     for sentence in list1:
...         if word.lower() in sentence.lower():
...             print(sentence)
... 
Hi I am Tayyab
I am a python programmer

答案 2 :(得分:0)

此代码应该有效。它会创建一个包含列表中任何单词的所有短语的列表。

list1=['Hi I am Tayyab','I am a python programmer', 'I am new To python' ]

list2=['Tayyab','Programmer']

result = []

for word in list2:
  for phrase in list1:
    if word.lower() in phrase.lower():
      result.append(phrase)

unique_result = set(result)
print(result)
print(unique_result)

最后的set方法用于从列表中获取唯一值,以防您只想要每个短语一次。