0

会社のリストからの会社がファイルの行にあるかどうかを確認しようとしています。そうであれば、その会社のインデックスを利用して、別の配列の変数をインクリメントします。以下は私のpythonコードです。次のエラーが発生し続けます: AttributeError: 'set' object has no attribute '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 
4

3 に答える 3

3
companies={'white house black market', 'macy','nordstrom','filene','walmart'}

セットです。ユニークなエントリがあります。

companies=['white house black market', 'macy','nordstrom','filene','walmart']

リストであり、同じ値の複数のエントリを指定できます。索引付けも可能です。

于 2012-11-23T05:00:37.973 に答える
2
companies={'white house black market', 'macy','nordstrom','filene','walmart'}

上記の宣言はset. また、 asetには順序付けがないため、そこから要素のインデックスを取得することはできません。

>>> 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']
于 2012-11-23T05:01:15.323 に答える
1

company はセットであり、セットには順序がないため、index() を使用できません。リストに変更できます:

companies=['white house black market', 'macy','nordstrom','filene','walmart']
于 2012-11-23T05:00:05.690 に答える