如何在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()
奥马尔·塔里克

Answers:


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'>

您制作的是字典而不是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()

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.