我试图查看公司列表中的公司是否在文件中。如果是我利用该公司的索引来增加另一个数组中的变量。以下是我的python代码。我一直收到以下错误:AttributeError:'set'对象没有属性'index'。我无法弄清楚出了什么问题,并认为错误是被**包围的行。
companies={'white house black market', 'macy','nordstrom','filene','walmart'}
positives=[0 for x in xrange(len(companies))]
negatives=[0 for x in xrange(len(companies))]
for line in f:
for company in companies:
if company in line.lower():
words=tokenize.word_tokenize(line)
bag=bag_of_words(words)
classif=classifier.classify(bag)
if classif=='pos':
**indice =companies.index(company)**
positives[indice]+=1
elif classif=='neg':
**indice =companies.index(company)**
negatives[indice]+=1
答案 0 :(得分:3)
companies={'white house black market', 'macy','nordstrom','filene','walmart'}
是一套。它有独特的条目。
companies=['white house black market', 'macy','nordstrom','filene','walmart']
是一个列表,并且可以有多个相同值的条目。它也可以编入索引。
答案 1 :(得分:2)
companies={'white house black market', 'macy','nordstrom','filene','walmart'}
以上声明是set
。由于set
没有排序,因此您无法从中获取任何元素的索引。
>>> d = {2, 3, 4, 5}
>>> d
set([2, 3, 4, 5]) # It is a Set
因此,要索引元素,应将其声明为List
: -
companies=['white house black market', 'macy','nordstrom','filene','walmart']
答案 2 :(得分:1)
公司是一个集合,并且设置没有顺序,所以它不能使用index()。您可以将其更改为列表:
companies=['white house black market', 'macy','nordstrom','filene','walmart']