<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: python31</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/python31.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2009-06-28T15:02:09+00:00</updated><author><name>Simon Willison</name></author><entry><title>What's New In Python 3.1</title><link href="https://simonwillison.net/2009/Jun/28/python31/#atom-tag" rel="alternate"/><published>2009-06-28T15:02:09+00:00</published><updated>2009-06-28T15:02:09+00:00</updated><id>https://simonwillison.net/2009/Jun/28/python31/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://docs.python.org/3.1/whatsnew/3.1.html"&gt;What&amp;#x27;s New In Python 3.1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Lots of stuff, but the best bits are an ordered dictionary type (congrats, Armin), a Counter class for counting unique items in an iterable (I do this on an almost daily basis) and a bunch of performance improvements including a rewrite of the Python 3.0 IO system in C.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/armin-ronacher"&gt;armin-ronacher&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python3"&gt;python3&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python31"&gt;python31&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/releases"&gt;releases&lt;/a&gt;&lt;/p&gt;



</summary><category term="armin-ronacher"/><category term="performance"/><category term="python"/><category term="python3"/><category term="python31"/><category term="releases"/></entry></feed>