web-dev-qa-db-ja.com

pythonの空のセットにアイテムを追加するにはどうすればよいですか

次の手順があります。

def myProc(invIndex, keyWord):
    D={}
    for i in range(len(keyWord)):
        if keyWord[i] in invIndex.keys():
                    D.update(invIndex[query[i]])
    return D

しかし、次のエラーが表示されます。

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
TypeError: cannot convert dictionary update sequence element #0 to a sequence

Dに要素が含まれていてもエラーは発生しません。しかし、最初はDを空にする必要があります。

92
user2192774

D = {}は設定されていない辞書です。

>>> d = {}
>>> type(d)
<type 'dict'>

D = set()を使用します。

>>> d = set()
>>> type(d)
<type 'set'>
>>> d.update({1})
>>> d.add(2)
>>> d.update([3,3,3])
>>> d
set([1, 2, 3])
174
>>> d = {}
>>> D = set()
>>> type(d)
<type 'dict'>
>>> type(D)
<type 'set'>

作成したのは、セットではなく辞書です。

辞書のupdateメソッドは、新しい辞書を以前のものから更新するために使用されます。

>>> abc = {1: 2}
>>> d.update(abc)
>>> d
{1: 2}

一方、セットでは、セットに要素を追加するために使用されます。

>>> D.update([1, 2])
>>> D
set([1, 2])
19
Sukrit Kalra