所以我需要一种方法让python找到一个字符串的匹配项,然后找到前一个单词。例如:
如果我搜索"abc":
123 xyz abc def
我得到:
xyz abc
我搜索的全文是一个请求-响应,如果这有助于/改变任何事情的话。
我试着写一些东西来选择前一行,但从来没有发生过。我删除了代码(这是我不应该做的(,因为它不起作用。
您也可以使用一个简单的列表理解:
string = input('Enter string to be searched:').split(' ')
search = input('Enter characters to be searched for in string:')
output = ''.join([string[i-1] + ' ' + string[i] for i in range(len(string)) if string[i] == search])
if len(output) == 0:
print('No matches found')
else:
print('Match found: ' + output)
输出:
Enter string to be searched: 123 xyz abc def
Enter characters to be searched for in string: abc
Match found: xyz abc
获取单词列表(假设它们用空格分隔(:
s = "123 xyz abc def"
words = s.split()
压缩这个列表,使其向前移动一个位置,并构建一个字典,其中下一个单词是关键字,前一个单词是值:
word_dict = dict(zip(words[1:], words))
# {'xyz': '123', 'abc': 'xyz', 'def': 'abc'}
在字典里查这个词:
word_dict['abc']
#'xyz'
限制:如果字符串中有多个感兴趣的单词实例,则解决方案不起作用。