今夜、この質問を見ました。これまで聞いたことがなかったので、future_builtins不思議に思いました。future_builtinsいくつかのタイプのみをカバーしておりdict、それらの 1 つではありません。、、およびPython 2.7dictのビューを使用する Python 3 の動作を使用する方法はありますか? これは、Python 3 互換のコードを作成しようとする場合に特に役立ちます。Python 2 では、これらのメソッドには s を作成するオーバーヘッドがあり、イテレータ バージョンは Python 3 で廃止されます。それでも、Python 3 互換のコードを作成するには、これらのメソッドを使用することをお勧めします。itemskeysvalueslist
1632 次
1 に答える
3
viewkeys()、viewitems()およびviewvalues()py2xで使用できます。
>>> dict.viewkeys?
Type: method_descriptor
String Form:<method 'viewkeys' of 'dict' objects>
Namespace: Python builtin
Docstring: D.viewkeys() -> a set-like object providing a view on D's keys
- dict メソッド
dict.keys()を使用し、リストの代わりに「ビュー」dict.items()を返します。dict.values()たとえば、これは機能しなくなりましたk = d.keys()。k.sort(). 代わりに使用してくださいk = sorted(d)(これは Python 2.5 でも機能し、同様に効率的です)。- また、、
dict.iterkeys()およびdict.iteritems()メソッドdict.itervalues()はサポートされなくなりました。
Guido と話した後、将来のインポート マジックを取り除き
viewkeys、viewitemsおよびviewvaluesdict のメソッドを提供するだけにしました。これにより、効率的な 2.6 および 3.0 をdict使用するコードが作成されます。おそらく、3.0ではメソッドを//に直接2to3変換し、 すべてを でラップするのではありません。viewkeysvaluesitemslist()
2to3道具:
RefactoringTool: Refactored so.py
--- so.py (original)
+++ so.py (refactored)
@@ -1 +1 @@
-print dic.viewkeys()
+print(dic.keys())
于 2013-05-17T04:12:03.683 に答える