2013-07-07 34 views
71

tôi có các thủ tục sau:Làm thế nào tôi có thể thêm các mục vào một tập rỗng trong 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 

Nhưng tôi nhận được lỗi sau:

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

tôi không nhận được bất kỳ lỗi nếu D chứa các phần tử. Nhưng tôi cần D để trống ngay từ đầu.

+2

'{}' là từ điển, không phải là bộ. –

+1

Với một dòng 'D = {} ', bạn khai báo một từ điển trống, không phải là một tập hợp. Bạn khai báo một tập rỗng bằng 'S = set()'. –

Trả lời

134

D = {} là từ điển không được đặt.

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

Sử dụng 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'> 

gì bạn đã thực hiện là một cuốn từ điển và không phải là một Set.

Phương pháp update trong từ điển được sử dụng để cập nhật các từ điển mới từ một trước đó, như vậy,

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

Trong khi đó bộ, nó được sử dụng để thêm các yếu tố để các thiết lập.

>>> D.update([1, 2]) 
>>> D 
set([1, 2]) 
Các vấn đề liên quan