今夜、この質問を見ました。これまで聞いたことがなかったので、future_builtins
不思議に思いました。future_builtins
いくつかのタイプのみをカバーしておりdict
、それらの 1 つではありません。、、およびPython 2.7dict
のビューを使用する Python 3 の動作を使用する方法はありますか? これは、Python 3 互換のコードを作成しようとする場合に特に役立ちます。Python 2 では、これらのメソッドには s を作成するオーバーヘッドがあり、イテレータ バージョンは Python 3 で廃止されます。それでも、Python 3 互換のコードを作成するには、これらのメソッドを使用することをお勧めします。items
keys
values
list
質問する
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
およびviewvalues
dict のメソッドを提供するだけにしました。これにより、効率的な 2.6 および 3.0 をdict
使用するコードが作成されます。おそらく、3.0ではメソッドを//に直接2to3
変換し、 すべてを でラップするのではありません。view
keys
values
items
list()
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 に答える