मैं अजगर में एक खाली सेट में आइटम कैसे जोड़ सकता हूं


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 में तत्व हैं तो मुझे कोई त्रुटि नहीं मिलती है। लेकिन मुझे शुरुआत में डी खाली होना चाहिए।


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 = {}यह एक शब्दकोश बन जाता है। खाली सेट बनाने के लिए, चर को 'सेट' () पर नियत करें:new_set = set()

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.