我编写这段代码是为了在字符串列表中执行一个简单的搜索引擎,如下例所示:
mii(['hello world','hello','hello cat','hellolot of cats']) == {'hello': {0, 1, 2}, 'cat': {2}, 'of': {3}, 'world': {0}, 'cats': {3}, 'hellolot': {3}}
但我总是报错
'dict' object has no attribute 'add'
我该如何解决?
def mii(strlist):
word={}
index={}
for str in strlist:
for str2 in str.split():
if str2 in word==False:
word.add(str2)
i={}
for (n,m) in list(enumerate(strlist)):
k=m.split()
if str2 in k:
i.add(n)
index.add(i)
return { x:y for (x,y) in zip(word,index)}
请您参考如下方法:
在 Python 中,当您将一个对象初始化为 word = {} 时,您创建的是一个 dict 对象,而不是一个 set 对象(我认为这就是你想要的)。为了创建一个集合,使用:
word = set()
您可能对 Python 的集合理解感到困惑,例如:
myset = {e for e in [1, 2, 3, 1]}
这会导致包含元素 1、2 和 3 的 set。类似地,Dict Comprehension:
mydict = {k: v for k, v in [(1, 2)]}
生成具有键值对 1: 2 的字典。
