私はプログラムでたくさんの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. どちらがより効率的で、atan2かsqrtですか?
- 4. どちらが効率的か、itoaかsprintfですか?
- 5. ファイルからの読み取り。どちらが良いアプローチですか、なぜですか?
- 6. Android - どちらが効率的ですか?
- 7. どちらのクエリがより効率的ですか?
- 8. どちらがより良いです
- 9. accdbとmdb。どちらが速い/良いですか?
- 10. ベクターとArrayListのどちらが良いですか?
- 11. InnoDBとMYISAMのどちらが良いですか?
- 12. どちらが良いjqueryモバイルかphonegap
- 13. これら2つのソリューションのどちらが効率的ですか? (Javaハッシュセット)
- 14. どちらが効率的で、 "data.Length == 0"または "data == string.Empty"ですか?
- 15. どちらが良いですか?このサンプルコードでプライベート
- 16. 可読性の点でどちらが優れていますか?
- 17. どちらが良いですか?:(reduce + ...)または(apply + ...)?
- 18. スレッドまたはJMSどちらが良いですか?
- 19. どちらの方法を使うのが良いですか
- 20. C++/CLI vs COM - どちらが良いですか?
- 21. どちらが良いですか、setEnabledまたはsetUserInteractionEnabled?
- 22. どちらが速く/より良いですか?
- 23. PigServerまたはPigRunner?どちらが良いですか?
- 24. CSS:#id .class VS .classのパフォーマンス。どちらが良いですか?
- 25. どちらが良いですか:mysql_connectまたはmysql_pconnect
- 26. どちらが良いですか? URLReWriter.netまたはURLReWriting.NET
- 27. どちらが良いですか、NagiosまたはSensu?
- 28. どちらが良いですか? Java開発またはWebworks?
- 29. どちらを使うのが良いですか?
- 30. Laravel - レスポンス::レスポンス() - どちらが良いですか
これはタプル型のラッパーだと思いますか?どれくらいのオーバーヘッドが発生しますか? – Varriount
私の編集を参照してください。基本的に、最小。 – agf
スピードは?私はNamedtupleを読んで、ドキュメントとhttp://pysnippet.blogspot.com/2010/01/named-tuple.htmlを見て、コメントのセクションでは、Namedtupleを使用することは2-3倍速が遅くなります。申し訳ありませんが、私の特に重要なセクションの1つは、何回も何回も実行されていますが、私は多くの揺れの部屋、パフォーマンスが賢明ではありません。それ以外にも、これは素晴らしい解決策のように見えます。 – Varriount