it-swarm.dev

كيف يمكنني إضافة عناصر إلى مجموعة فارغة في بيثون

لدي الإجراء التالي:

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 يحتوي على عناصر. ولكني أحتاج إلى أن أكون فارغًا في البداية.

90
user2192774

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])
171
Ashwini Chaudhary
>>> 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])
19
Sukrit Kalra