python:TypeError:类型为';内置函数或方法';这是不可容忍的
因此,我一直在尝试完成一个拼写检查程序,该程序使用.txt并与dictionary.txt进行比较,以查找错误的单词。结果应该是打印回.txt中错误的单词 但在尝试执行for循环时,我不断遇到此错误: TypeError:类型为“内置函数”或“方法”的参数不可iterable 这是我的密码:python:TypeError:类型为';内置函数或方法';这是不可容忍的,python,for-loop,typeerror,Python,For Loop,Typeerror,因此,我一直在尝试完成一个拼写检查程序,该程序使用.txt并与dictionary.txt进行比较,以查找错误的单词。结果应该是打印回.txt中错误的单词 但在尝试执行for循环时,我不断遇到此错误: TypeError:类型为“内置函数”或“方法”的参数不可iterable 这是我的密码: def spell_check(wordlist): opening = open('words.txt').read(). lower(). strip(' ') text = []
def spell_check(wordlist):
opening = open('words.txt').read(). lower(). strip(' ')
text = []
conv = set(opening)
conv1 = set(wordlist)
conv2 = conv1.add
return [x for x in conv if x not in conv2]
编辑:
我需要conv2,因为我需要保持错误的顺序与它们出现的顺序相同;我不希望它像一套一样被订购。因此,如果有人对如何解决这个问题有其他见解的话。那太好了
如果有人能对这件事有所了解,那将不胜感激 看起来您正试图将
conv2
作为一个iterable进行访问,尽管您已将其设置为等于方法add()
。。。你在做什么
conv2 = conv1.add
这是问题线。。。我认为您正在寻找的不是
.add
,而是将conv2
分配给函数(例如,您可以说conv2(2)
,相当于conv1.add(2)
)。问题是您正在将方法add
绑定到变量conv2
。我想你可能想做的是:
def spell_check(wordlist):
# change .strip(' ') to .split(' ') to get a list
opening = open('words.txt').read().lower().split(' ')
conv = set(opening)
conv1 = set(wordlist)
# I don't think you need conv2 at all, right?
return [x for x in conv if x not in conv1]
我假设传入的
wordlist
是字典,“words.txt”是您正在检查拼写的文档。我不认为这是<代码>转换=设置(打开)。。。做你想做的事。提示:在任何情况下,您都不会将从文件中读取的文本拆分为单词。wordlist
是字典,而“words.txt”是您正在拼写检查的文档吗?完全相同的帖子: