[Python-ideas] frozenset literals
Hua Lu
gotoalanlu at gmail.com
Sat Feb 2 08:38:06 CET 2013
>>> import ast
>>> ast.literal_eval("{ 'key': 'val' }")
{'key': 'val'}
>>> ast.literal_eval("{ ('key',): 'val' }")
{('key',): 'val'}
>>> ast.literal_eval("{ frozenset({'key'}): 'val' }")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.3/ast.py", line 86, in literal_eval
return _convert(node_or_string)
File "/usr/lib/python3.3/ast.py", line 63, in _convert
in zip(node.keys, node.values))
File "/usr/lib/python3.3/ast.py", line 62, in <genexpr>
return dict((_convert(k), _convert(v)) for k, v
File "/usr/lib/python3.3/ast.py", line 85, in _convert
raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: <_ast.Call object at 0x7f865a8c1450>
On Sat, Feb 2, 2013 at 1:34 AM, Stefan Behnel <stefan_ml at behnel.de> wrote:
> Hua Lu, 02.02.2013 07:24:
> > This is similar to another proposal:
> > http://mail.python.org/pipermail/python-3000/2008-January/011798.html
> >
> > Anyway, I was using ast.literal_eval and attempted to use
> frozenset({...})
> > as a key in a dictionary, which failed, because frozenset isn't a literal
>
> This has nothing to do with being a literal or not. The way you created
> your frozenset doesn't impact its behaviour.
>
> Could you give an example of what's not working for you? Frozensets as dict
> keys work just fine for me:
>
> Python 3.2.3 (default, Oct 19 2012, 19:53:16)
> [GCC 4.7.2] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> frozenset({1,2,3})
> frozenset({1, 2, 3})
> >>> hash(frozenset({1,2,3}))
> -7699079583225461316
> >>> { frozenset({1,2,3}) : 1 }
> {frozenset({1, 2, 3}): 1}
>
> Stefan
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130202/d8f06893/attachment.html>
More information about the Python-ideas
mailing list