ฉันจะเพิ่มรายการในชุดว่างใน 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
{}เป็นพจนานุกรมไม่ใช่ชุด
Sukrit Kalra

5
ด้วยบรรทัดที่D={}คุณประกาศพจนานุกรมว่างเปล่าไม่ใช่ชุด S=set()คุณประกาศชุดที่ว่างเปล่าโดย
Omar Tariq

คำตอบ:


195

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.