Das I/O-System wurde nach Angaben der Entwickler in C komplett neu geschrieben und arbeitet dadurch wesentlich flotter - die Release Notes sprechen von einer 2 bis 20-fachen Geschwindigkeitssteigerung. Die Dateisystem-API verdaut nun auch Unicode Strings, die nicht dekodierbare Zeichen enthalten.
Neu hinzugekommen sind Ordererd Dictionarys. Im Gegensatz zu den normalen Dictionarys berücksichtigen sie die Reihenfolge der in ihnen gespeicherten Elemente. Die Ordnung richtet sich dabei nach dem Zeitpunkt, zu dem ein Schlüssel zum ersten Mal eingefügt wurde. Überschreibt man nur den Wert eines schon vorhandenen Schlüssels, bleibt die Position des Schlüssel-Wertepaares im Dictionary erhalten. Erst wenn man den Eintrag komplett löscht und dann den Schlüssel erneut einfügt, wandert er an das Ende der Sortierreihenfolge.
Eine weitere Neuerung betrifft die eingebauten format() und str.format()-Funktionen. Sie erlauben es nun in Zahlen die Tausender-Stellen beispielsweise mit einem Punkt abzusetzen. Darüber hinaus nummeriert Python auf Wunsch die die Felder in format()-Strings automatisch durch.
Der int()-Typ verfügt jetzt über eine bit_length-Methode, die die Anzahl der Bits zurück gibt, notwendig sind, um ihr Argument im Binärformat auszugeben. Die string.maketrans()-Funktion wurde ausgemustert und gegen die neuen statischen Methoden bytes.maketrans() und bytearray.maketrans() ersetzt. Damit haben jetzt str, bytes und bytearray jeweils ihre eigenen maketrans und translate-Methoden.
Neu ist das Modul importlib, das eine Python-Referenzimplementierung der import-Anweisung und der __import__() Funktion anbietet. Verschachtelte with-Statements lassen sich wesentlich kompakter formulieren, round(x, n) liefert eine Integer-Zahl zurück, sofern x ein Integer ist und die collections.Counter Klasse zählt die eindeutigen Elemente in einer Sequenz oder einem iterierbaren Objekt.
Das Modul für Unit-Tests kann jetzt einzelne Tests oder Testklassen überspringen (Test-Skipping) und erlaubt es, bekanntermaßen oder sehr wahrscheinlich fehlschlagende Tests als solche in der Auswertung verschwinden zu lassen. Ergänzend spendierten die Entwickler weitere assert-Methoden.
Alle weiteren Änderungen beschreiben ausführlich die Release Notes. Programmierer erhalten die neue Version auf der Python-Homepage oder warten bis entsprechende Pakete in den Repositories der Distributionen auftauchen.
Python 3.1 ist die erste überarbeitete Fassung der vor gut einem halben Jahr veröffentlichten Version 3.0, die in vielen Teilen mit ihren Vorgängern brach.



