I find it convenient to use this simple syntax to initialize dictionary
d = {'a':'Apple','b':'Bat'};
Today, while reading the page, I came across this strange piece of code
{True:0, False:1}[True];
I was wondering why / how this could work? Trueand Falseare reserved keywords, and therefore, that crazy syntax should be meaningless (for the compiler), but it is not.
>>> d = {True:0, False:1};
>>> d
{False: 1, True: 0}
And it gets more crazy
>>> d = dict(True = 0, False = 1);
SyntaxError: assignment to keyword
>>> d = dict(_True = 0, _False = 1);
>>> d
{'_False': 1, '_True': 0}
In the constructor, the dict()keyword is Truenot valid! But...
UpdatePython 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import keyword
>>> keyword.iskeyword('print');
False
>>> keyword.iskeyword('else');
True
>>> keyword.iskeyword('True');
True
>>> keyword.iskeyword('False');
True
source
share