Як я можу додати елементи до порожнього набору в python


104

У мене є така процедура:

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

Але я отримую таку помилку:

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

Я не отримую жодної помилки, якщо D містить елементи. Але мені потрібно D, щоб він був порожнім на початку.


3
{}це словник, а не набір.
Сукрит Калра

5
За допомогою рядка D={}ви оголошуєте порожній словник, а не набір. Ви оголошуєте порожній набір користувачем S=set().
Омар Тарік

Відповіді:


194

D = {} це словник не встановлено.

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

Використання 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'>

Що ви створили - це словник, а не набір.

updateМетод в словнику використовуються для поновлення нового словника з попередньої, подобається так,

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

Якщо в наборах, він використовується для додавання елементів до набору.

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

0

Якщо призначити змінну порожнім фігурним дужкам {}, наприклад:, new_set = {}вона стає словником. Щоб створити порожній набір, призначіть змінну 'set ()', тобто:new_set = set()

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.