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


104

次の手順があります。

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が空である必要があります。


3
{}辞書ではなく、セットです。
スクリットカラ2013

5
D={}では、セットではなく空の辞書を宣言します。空のセットをで宣言しますS=set()
Omar Tariq 2016年

回答:


194

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])

19
>>> 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])

0

変数を空の中括弧{}に割り当てた場合(例:)new_set = {}、それは辞書になります。空のセットを作成するには、変数を 'set()'に割り当てます。new_set = set()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.