def printList(list, word, list_size):
map = [0] * NO_OF_CHARS
for i in word:
map[ord(i)] = 1
word_size = len(word)
for i in list:
count = 0
for j in i:
if map[ord(j)]:
count+=1
map[ord(j)] = 0
if count==word_size:
print i
# Set the values in map for next item
for j in xrange(len(word)):
map[ord(word[j])] = 1
printList(list1, wordNeeded, len(list1))
list1 = ["A blue car", "A blue bike", "A red bike"]
result = [item for item in list1 if wordNeeded in item]
print(result)
# ["A red bike"]
或者,您可以结合lambda函数查看filter:
result = filter(lambda x: wordNeeded in x, list1)
print(list(result))
后者在这种情况下更为复杂,但会产生相同的结果。
至于精确单词,您需要在(+最后小写)之前拆分每个项目:
wordNeeded = "blue"
list1 = ["A blue car", "A blue bike", "A red bike", "bluebells are cool."]
result = [item for item in list1
if any(wordNeeded.lower() == x.lower() for x in item.split())]
print(result)
# ['A blue car', 'A blue bike']
或者使用带有单词边界的正则表达式:
import re
rx = re.compile(r'\b{}\b'.format(wordNeeded), flags=re.I)
result = [item for item in list1 if rx.search(item)]
print(result)
您可以像这样使用for循环:
实际的单词搜索非常简单,已经讨论了很多时间:
Python - Check If Word Is In A String
https://www.geeksforgeeks.org/python-string-find/
在其他方式中,您可以使用列表理解:
或者,您可以结合
lambda
函数查看filter
:后者在这种情况下更为复杂,但会产生相同的结果。
至于精确单词,您需要在(+最后小写)之前拆分每个项目:
或者使用带有单词边界的正则表达式:
相关问题 更多 >
编程相关推荐