Wie kann ich einem leeren Satz in Python Elemente hinzufügen?


104

Ich habe das folgende Verfahren:

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

Aber ich bekomme folgenden Fehler:

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

Ich erhalte keine Fehlermeldung, wenn D Elemente enthält. Aber ich brauche D, um am Anfang leer zu sein.


3
{}ist ein Wörterbuch, keine Menge.
Sukrit Kalra

5
Mit einer Zeile D={}deklarieren Sie ein leeres Wörterbuch, keine Menge. Sie deklarieren eine leere Menge von S=set().
Omar Tariq

Antworten:


194

D = {} ist ein Wörterbuch nicht gesetzt.

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

Verwendung 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'>

Was Sie gemacht haben, ist ein Wörterbuch und kein Set.

Die updateMethode im Wörterbuch wird verwendet, um das neue Wörterbuch von einem vorherigen zu aktualisieren.

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

Während in Sets verwendet wird, werden Elemente zum Set hinzugefügt.

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

0

Wenn Sie leeren geschweiften Klammern {} eine Variable zuweisen, z. B.: new_set = {}, Wird sie zu einem Wörterbuch. Um eine leere Menge zu erstellen, weisen Sie die Variable einer 'Menge ()' zu, dh:new_set = set()

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.