Python '需要字符串作为左操作数,而不是列表'搜索关键字并从txt文件打印相对行

Python '需要字符串作为左操作数,而不是列表'搜索关键字并从txt文件打印相对行,python,Python,所以我在学校为一个项目做一个电话故障排查器,我总是收到错误 TypeError:“字符串中”需要字符串作为左操作数,而不是列表 我真的很困惑,因为我不知道该做什么,代码对我来说很好。这是: sq = input("What is wrong") word = sq.split() with open("solutions.txt", "r") as f: searchlines = f.readlines() for i, line in enumerate(searchlines):

所以我在学校为一个项目做一个电话故障排查器,我总是收到错误

TypeError:“字符串中”需要字符串作为左操作数,而不是列表

我真的很困惑,因为我不知道该做什么,代码对我来说很好。这是:

sq = input("What is wrong")
word = sq.split()
with open("solutions.txt", "r") as f:
    searchlines = f.readlines()
for i, line in enumerate(searchlines):
    if word in line: 
        for l in searchlines[i:i+20]: print(l),
        print
有人能告诉我如何让这段代码根据关键字返回多个相对行吗?谢谢。

word在您的第2行中作为列表分配。但是第6行

if word in line
要求单词是字符串这就是问题所在

回答你关于如何

获取这段代码以返回多个相对行 根据关键词

sq = 'hello how are you'
word = sq.split()
print(type(word))
print(word)
请根据关键字定义多个相对行

sq = 'hello how are you'
word = sq.split()
print(type(word))
print(word)
产生

<class 'list'>
['hello', 'how', 'are', 'you']
代码是检查列表是否在每一行中,而不是检查单个单词,即字符串是否存在

我忽略了您想要在文件中查找的内容,可能是输入的任何单词

            if any(w in line for w in word): 
                for l in searchlines[i:i+20]: print(l),
                print
            if all(w in line for w in word): 
                for l in searchlines[i:i+20]: print(l),
                print
或者输入的所有单词

            if any(w in line for w in word): 
                for l in searchlines[i:i+20]: print(l),
                print
            if all(w in line for w in word): 
                for l in searchlines[i:i+20]: print(l),
                print
或者,您可能只希望看到一个单词,只是希望确保删除空白

word = sq.strip()

word=sq.split是一个列表是的,我知道,所以我不能让它工作,有没有其他选择的想法?这取决于你想要实现什么。这是一部经典作品。根据您的描述,不清楚您是要查找单个单词还是多个单词,在这种情况下,所有或任何单词我只查找一个识别用户问题的关键字好吧,那么正如我在下面的回答中所述,如果您只是将word=sq.split替换为word=sq.strip,您的代码是否正常工作?假设只输入一个关键字,则允许使用空格作为前缀/后缀如果搜索行[i:i+20]:printl中w的行中有任何w,则允许使用空格作为前缀/后缀,但现在,如果用户键入“我的内存管理很差”,则会显示“是”的所有结果及其以下行,而我只需要其中的“内存”部分。感谢您的帮助:您如何识别这样一个字符串中的内存。请详细描述您的需求。我只需要找到识别用户问题的关键字,从而让我打印解决方案。因此,我有一个txt文件,其中包含用户可能遇到的问题的所有解决方案。我需要在txt文件中搜索关键字,例如,可能会写“我的屏幕已冻结”,我需要在txt文件中查找屏幕并打印解决方案