Pythonでは、名前付きタプルの宣言に文字列のシーケンスとして、または各名前が空白やコンマで区切られた単一の文字列として、field_names
を指定することができます。名前付きタプルフィールド名:単一の文字列またはシーケンス?
FIELD_NAMESは、[「X」、「Y」]のように文字列の配列で:
公式ドキュメントによると、Python 2で優先的な方法は、シーケンスとして名を提供することだったようです。 また、field_namesには、各フィールド名が の空白またはコンマで区切られた単一の文字列(たとえば 'x y'または 'x、y')を使用できます。
Python 3に嗜好が単一のストリングバージョンに変更しつつ:
FIELD_NAMESは 空白および/またはコンマで区切られた各フィールド名を持つ単一の文字列は、例えば「X-Y」又は「Xため、 y 'である。 また、field_namesは、['x'、 'y']のような一連の文字列にすることができます。
理由はありますか?
一見すると、入力を分割する必要があるため、単一文字列バージョンの方が効率が悪いと言えます。シーケンスは、私にとっても読みやすいようです。どれが効率的ですか?
通常、名前付きタプルの種類は起動時に一度作成されるため、ここで効率を上げてはいけません。最も読みやすいと思われるものを使用してください。 – zstewart
@zstewart:なぜ、彼らはPython 3の文書で言い換えて時間を費やしたのですか? – Pintun
おそらく彼らはそれがもっと読みやすいと思ったのでしょうか、あるいは意図的な決定ではなかったかもしれません、私は分かりません。しかし、namedtupleは通常、 'class'に類似したトップレベルの単一実行型宣言として使用されるので、この文字列解析の効率はかなり無関係です。 – zstewart