我有两个列表,一个包含字符串,另一个包含要找到的单词。
让我们说:
list1 = ['Hi I am Tayyab','I am a python programmer', 'I am new To python' ]
list2 = ['Tayyab','Programmer']
我想检查列表1是否包含list2
中的字词。
如果是,则返回list1
中的完整字符串。
在上述情况下,我希望返回list1
中的前两项,因为前两项包含'Tayyab'
和'Programmer'
字样。
答案 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
方法用于从列表中获取唯一值,以防您只想要每个短语一次。