Làm cách nào để thêm các mục vào một tập hợp trống trong python


104

Tôi có thủ tục sau:

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 gặp 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 gặp bất kỳ lỗi nào nếu D chứa các phần tử. Nhưng tôi cần D để trống ở đầu.


3
{}là một từ điển, không phải là một bộ.
Sukrit Kalra,

5
Với một dòng, D={}bạn khai báo một từ điển trống, không phải một tập hợp. Bạn khai báo một tập hợp trống bởi S=set().
Omar Tariq

Câu trả lời:


194

D = {} là một từ điển không được thiết lập.

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

19
>>> d = {}
>>> D = set()
>>> type(d)
<type 'dict'>
>>> type(D)
<type 'set'>

Những gì bạn đã làm là một từ điển chứ không phải một Bộ.

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

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

Trong khi trong tập hợp, nó được sử dụng để thêm các phần tử vào tập hợp.

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

0

Khi bạn gán một biến vào dấu ngoặc nhọn trống {}, ví dụ:, new_set = {}nó sẽ trở thành một từ điển. Để tạo một tập hợp trống, hãy gán biến cho 'set ()' tức là:new_set = set()

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.