私はプログラムでたくさんのxyzベクトルを使っています。私は変数を(offset_x、offset_yなどのように)それぞれに与えることは面倒であり、コードに悩まされているほど十分に使用しています。さて、x、y、xの各セットをoffset =(x、y、z)などのタプルに入れることができましたが、offset [0]のようなものを使うと、私が望むように、dictの使用はあまりにも非効率的だと思われます。 Numpyは別の選択肢ですが、多くの人がそれを提案していますが、Poor numpy.cross() performanceにある情報に基づいて、Nunpyは私が扱っている短い配列にはあまり適していない可能性があります。いくつかの部分が1秒に何回も実行されるので、スクリプトは減速します。そこには、効率的で読みやすいものがありますか?読みやすさと効率性どちらが良いですか?ナンシー、タプルなど?
1
A
答えて
2
もっと読みやすいタプルをお探しの場合はをご覧ください。ポイントは、ドキュメントに示されている例です。
Point = namedtuple('Point', ['x', 'y'])
>>> p = Point(11, y=22) # instantiate with positional or keyword arguments
>>> p[0] + p[1] # indexable like the plain tuple (11, 22)
33
>>> x, y = p # unpack like a regular tuple
>>> x, y
(11, 22)
>>> p.x + p.y # fields also accessible by name
33
>>> p # readable __repr__ with a name=value style
Point(x=11, y=22)
効率に興味がある場合は、implementationをご確認ください。これは__slots__
を使用し、exec
を使ってアセンブルされるため、通常のタプルと比べてオーバーヘッドが最小限に抑えられます。
あなたも、より多くのフットプリントを減らすために__repr__
、_asdict
、_replace
、および__getnewargs__
などの可能性が不要な方法のいくつかを切り出すことができPythonでコーディングされていますので。
関連する問題
- 1. read()とpread()のどちらが効率的ですか?
- 2. どちらが良いですか?
- 3. どちらが良いですか? toFile
- 4. どちらがより効率的で、atan2かsqrtですか?
- 5. どちらが効率的か、itoaかsprintfですか?
- 6. ファイルからの読み取り。どちらが良いアプローチですか、なぜですか?
- 7. どちらが効率的ですか?繰り返されるセレクタやより簡潔なセレクタの変数
- 8. どちらが効率的ですか:Pythonドキュメントストリングまたはタイプヒント?
- 9. Android - どちらが効率的ですか?
- 10. どちらのクエリがより効率的ですか?
- 11. どちらがより良いです
- 12. accdbとmdb。どちらが速い/良いですか?
- 13. MongoDBコレクション - どちらの方が効率的でしょうか?
- 14. InnoDBとMYISAMのどちらが良いですか?
- 15. @HostListenerとRenderer.listenのどちらが良いですか?
- 16. ベクターとArrayListのどちらが良いですか?
- 17. どちらが良いですか、コンパイラかインタプリタですか?
- 18. どちらが良いjqueryモバイルかphonegap
- 19. サイズlz4またはzlibのどちらが圧縮率が良いか
- 20. これら2つのソリューションのどちらが効率的ですか? (Javaハッシュセット)
- 21. どちらが効率的ですか:ブール値かバイナリ整数か。
- 22. どちらが効率的で、 "data.Length == 0"または "data == string.Empty"ですか?
- 23. どちらが良いですか?このサンプルコードでプライベート
- 24. どちらが良いですか:mysql_connectまたはmysql_pconnect
- 25. Laravel - レスポンス::レスポンス() - どちらが良いですか
- 26. スレッドまたはJMSどちらが良いですか?
- 27. どちらが良いですか、setEnabledまたはsetUserInteractionEnabled?
- 28. どちらを使うのが良いですか?
- 29. どちらが良い方法ですか?
- 30. どちらが良いですか? Java開発またはWebworks?
これはタプル型のラッパーだと思いますか?どれくらいのオーバーヘッドが発生しますか? – Varriount
私の編集を参照してください。基本的に、最小。 – agf
スピードは?私はNamedtupleを読んで、ドキュメントとhttp://pysnippet.blogspot.com/2010/01/named-tuple.htmlを見て、コメントのセクションでは、Namedtupleを使用することは2-3倍速が遅くなります。申し訳ありませんが、私の特に重要なセクションの1つは、何回も何回も実行されていますが、私は多くの揺れの部屋、パフォーマンスが賢明ではありません。それ以外にも、これは素晴らしい解決策のように見えます。 – Varriount