仍在这里学习,并为课程设计我的最终项目。问题出在这里:我试图在浏览列表时写一个新文件,并在另一个文件中检查列表中的这些项目。如果找到它们,应该将它们添加到新文件中。现在,我收到一个TypeError:
Traceback (most recent call last):
File "C:/Users/jesse/OneDrive/Documents/PycharmProjects/KimmelFreeman_CMIT450_Project/KimmelFreeman_CMIT450_Project.py", line 154, in <module>
while x < len(list1):
TypeError: '<' not supported between instances of 'str' and 'int'
我正在尝试检查x是否小于列表的len,以继续检查。我这样做是因为之前我只能让它返回列表中位置0的值。现在,我根本无法正常工作。超级令人沮丧。我试过在len周围添加str(),但随后x + = 1产生了错误。显然我没有正确执行此操作。我检查了类似的帖子,却找不到一个,但是如果有一个,请指出我的方向。
我希望代码可以遍历列表,并对照输入文件进行检查,如果找到肯定的结果,请将其保存到新文件中。
我不确定您需要看哪些部分,并且有很多代码,因此我将包括产生错误的区域:
# Ask user for needed keywords or symbols
user_keywords = input("What keywords or special symbols would you like to search the provided file for?\n"
"Please separate each entry with a comma.\nIf you would like to just search for question marks,"
" please just type n.\n")
# Holding list, using comma as a way to separate the given words and symbols
list1 = list(user_keywords.split(','))
# Print list for user to see
print("You have entered the following keywords and/or special symbols: ", list1)
outFileName = input()
outFile = open(outFileName,'w')
def filter_lines_by_keywords(lines_to_filter, key_words):
key_words_s = set(key_words)
return filter(lambda l: set(l.split()) & key_words_s, lines_to_filter)
for x in list1:
outFile.write('Results for keywords and symbols:' + '\n')
i =0
while i < len(list1):
res = filter_lines_by_keywords(lines_to_filter= file1lines, key_words= list1)
outFile.write(str(list(res)))
i += 1
outFile.close()
让我知道是否需要添加更多代码。谢谢!
修改
已更新以反映如何制作list1
。我正在使用相同的变量。新秀错误。但是,即使我更改代码并解决同一变量的问题,我也无法使代码移出列表中的第一个位置以查看其中的其他项。有任何想法吗?我在做什么错了?