inp_str1 = 'why are you still using cycle. Happy ride.'
inp_str2 = 'happy,cycle'
输出:
['happy', [Happy ride], 'cycle', ['why are you still using cycle']]
获得了预期的答案,但是搜索inp_str1
的次数为'n'次。 n = inp_str2
中的单词数。
inp_str1 = 'why are you still using cycle. Happy ride.'
inp_str2 = 'happy,cycle'
.....
slist = inp_str2.split(',')
for word in slist:
out.append(word)
for line in inp_str1.split('.'):
if (word in line):
temp.append(line.strip())
else:
pass
out.append(temp); temp=[]
;
.....
print(out)
如何在一次迭代中获得相同的结果。
仅在字符串(inp_str1
中搜索字符串(inp_str2
)中的所有单词一次,并生成上述输出。
答案 0 :(得分:0)
好的,问题是您正在搜索字词而不是行词的第一个循环中。如果只想检查inp_str1中的每个句子一次,则应先循环检查它。另外,我不太明白为什么您要使用列表而不是字典来输出最终结果,能否请您添加期望的结果。
使用dict输出,代码将如下所示:
out = {search_word: [] for search_word in slist}
for line in inp_str1.split('.'):
for word in slist:
if word in line.lower():
out[word].append(line)
它将生成以下输出:
{'happy': [' Happy ride'], 'cycle': ['why are you still using cycle']}
因此,对于str_2中的每个字符串,您将击中搜索字符串中的每个句子一次,而inp_str1中的每个单词将击中一次。
如果确定需要列表作为输出,则只需在新的内部循环中复制附加命令即可。
希望会有所帮助