¿Cómo puedo agregar elementos a un conjunto vacío en Python?

104

Tengo el siguiente procedimiento:

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

Pero recibo el siguiente error:

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

No obtengo ningún error si D contiene elementos. Pero necesito que D esté vacío al principio.

user2192774
fuente
3
{}es un diccionario, no un conjunto.
Sukrit Kalra
5
Con una línea D={}declaras un diccionario vacío, no un conjunto. Declaras un conjunto vacío por S=set().
Omar Tariq

Respuestas:

194

D = {} es un diccionario no configurado.

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

Utilizar D = set():

>>> d = set()
>>> type(d)
<type 'set'>
>>> d.update({1})
>>> d.add(2)
>>> d.update([3,3,3])
>>> d
set([1, 2, 3])
Ashwini Chaudhary
fuente
19
>>> d = {}
>>> D = set()
>>> type(d)
<type 'dict'>
>>> type(D)
<type 'set'>

Lo que ha hecho es un diccionario y no un conjunto.

El updatemétodo en el diccionario se usa para actualizar el nuevo diccionario de uno anterior, así,

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

Mientras que en conjuntos, se usa para agregar elementos al conjunto.

>>> D.update([1, 2])
>>> D
set([1, 2])
Sukrit Kalra
fuente
0

Cuando asigna una variable a llaves vacías {} por ejemplo:, new_set = {}se convierte en un diccionario. Para crear un conjunto vacío, asigne la variable a un 'conjunto ()', es decir:new_set = set()

lincoln ajanga
fuente