Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: HBN en 12 Septiembre 2017, 03:09 am



Título: Error en python 3.6.2
Publicado por: HBN en 12 Septiembre 2017, 03:09 am
Código:
Python 3.6.2 (default, Sep  3 2017, 21:33:41) 
[GCC 6.3.0 20170406] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x={"hola",1,True,256}
>>> print(x)
{256, 1, 'hola'}
>>> x['c'] = "que tal"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support item assignment


estoy trabajando en python 3.6.2 y cuando intento agregar una clave/valor al diccionario me sale error,hubo algun cambio con las actualizaciones,si pueden hacermelo saber se los agradeceria mucho

gracias


Título: Re: Error en python 3.6.2
Publicado por: engel lex en 12 Septiembre 2017, 03:21 am
cuando haces
Código:
x={"hola",1,True,256}

estás declarando un set (si pones type(x) te dirá eso) un set no es más que un arreglo de elementos numerados (basicamente un array cualquiera), el set no soporta asignación de objetos por clave...


en lugar si haces
Código:
x={"hola":1,"True":,256}

es un diccionario que es lo que tu buscas

para evitar esta confusión usualmente simplemente declaras
Código:
x = {}

y luego rellenas


Título: Re: Error en python 3.6.2
Publicado por: HBN en 12 Septiembre 2017, 03:30 am
aaaa me confundi que manco xD
esto queria hacer
>>> x={"a":"hola"}
>>> x["b"] = "hola mmundo"
>>> print(x)
{'a': 'hola', 'b': 'hola mmundo'}
>>>