Jak mogę dodać elementy do pustego zestawu w Pythonie


104

Mam następującą procedurę:

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

Ale pojawia się następujący błąd:

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

Nie pojawia się żaden błąd, jeśli D zawiera elementy. Ale potrzebuję, aby D na początku było puste.


3
{}jest słownikiem, a nie zestawem.
Sukrit Kalra,

5
Linią D={}deklarujesz pusty słownik, a nie zbiór. Deklarujesz pusty zestaw przez S=set().
Omar Tariq

Odpowiedzi:


194

D = {} nie jest ustawiony słownik.

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

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

To, co stworzyłeś, to słownik, a nie zestaw.

updateMetoda w słowniku służy do aktualizacji nowego słownika z poprzedniego jeden, tak jak,

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

Natomiast w zestawach służy do dodawania elementów do zestawu.

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

0

Kiedy przypisujesz zmienną do pustych nawiasów klamrowych {}, np.: new_set = {}, Staje się ona słownikiem. Aby utworzyć pusty zestaw, przypisz zmienną do „set ()”, tj .:new_set = set()

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.