2013-07-07 19 views
71

Mam następującą procedurę:Jak mogę dodać elementy do pustego zestawu w Pythonie

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 otrzymuję 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 dostanę żadnego błędu, jeśli D zawiera elementy. Ale potrzebuję, żeby D był pusty na początku.

+2

'{}' to słownik, a nie zestaw. –

+1

Za pomocą linii 'D = {}' deklarujesz pusty słownik, a nie zbiór. Deklarujesz pusty zbiór przez 'S = set()'. –

Odpowiedz

134

D = {} to słownik nie ustawiony.

>>> 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]) 
16
>>> d = {} 
>>> D = set() 
>>> type(d) 
<type 'dict'> 
>>> type(D) 
<type 'set'> 

Co zrobiłeś to słownik, a nie zestaw.

Sposób w słowniku update służy do aktualizacji nowego słownika z poprzedniego, jak tak,

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

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

>>> D.update([1, 2]) 
>>> D 
set([1, 2]) 
Powiązane problemy