title: What is this odd colon behavior doing?
body: <p>I am using Python 3.6.1, and I have come across something very strange. I had a simple dictionary assignment typo that took me a long time to find.</p>
  
  <pre><code>context = {}
  context["a"]: 2
  print(context)
  </code></pre>
  
  <p>Output</p>
  
  <pre><code>{}
  </code></pre>
  
  <p>What is the code <code>context["a"]: 2</code> doing? It doesn't raise a <code>SyntaxError</code> when it should IMO. At first I thought it was creating a slice. However, typing <code>repr(context["a"]: 2)</code> raises a <code>SyntaxError</code>. I also typed <code>context["a"]: 2</code> in the console and the console didn't print anything. I thought maybe it returned <code>None</code>, but I'm not so sure.</p>
  
  <p>I've also thought it could be a single line if statement, but that shouldn't be the right syntax either.</p>
  
  <p>Additionally, <code>context["a"]</code> should raise a <code>KeyError</code>.</p>
  
  <p>I am perplexed. What is going on?</p>