問題タブ [namedtuple]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4174 参照

python - Any way to bypass namedtuple 255 arguments limitation?

I'm using a namedtuple to hold sets of strings and their corresponding values. I'm not using a dictionary, because I want the strings accessible as attributes.

Here's my code:

Ideally, once my_strings is initialized, I should be able to do this:

and get value1 printed back.

However, I get the following error instead:

It seems python functions (including namedtuple's init()), do not accept more than 255 arguments when called. Is there any way to bypass this issue and have named tuples with more than 255 items? Why is there a 255 arguments limit anyway?

0 投票する
1 に答える
734 参照

python - namedtuple の unpickle でのエラー

グローバル変数 Agree は、すべての関数の外側で定義された名前付きタプルです。

名前付きタプルは、この関数から返されます。

がここで呼び出され、ピクルス化されます。

unpickle するとエラーが発生します:

ファイルの分解:

pickle と cPickle の両方で同様のエラーが発生します。

0 投票する
1 に答える
1924 参照

python - Namedtuple エラー

namedtuple を使用して Python オブジェクトを JSON にシリアライズしようとしています。しかし、私はこのエラーが発生します。Google は役に立ちません。

0 投票する
1 に答える
1471 参照

python - 名前付きタプルを「索引付け」する方法

名前付きタプルがあり、その中にいくつかの名前付きタプルが含まれています。

内側の各タプルには、基本的に一意の「id」と、その他の有用な情報があります。アクセスしたいタプルのIDを知っています.namedtupleを「インデックス」して、次のようなことをせずに必要な正確な要素を抽出する簡単な方法があるかどうか疑問に思っています:

0 投票する
0 に答える
979 参照

python - namedtuple に基づく変更可能な名前付きリストの最適化

私の目標は、CSV ソース リストの修飾子のスタックに基づいてフレームワークを最適化することです。各修飾子は、ヘッダー リストを使用して名前付きベースで機能します。

CSV の例 (ヘッダーを含む):

毎回データを再編成せずに csv モジュールによって生成されたリストを使用できるようにするために、namedtuple に基づいていくつかのコードを作成しました。以下の生成コード:

このクラスを使用したパフォーマンスには非常に失望しています。70000行のcsvファイルの各行に対して単純な修飾子関数(「無視」をTrueに100回変更します。はい、それが役に立たないことを知っています)を呼び出すと、9秒かかります(元のpythonを使用したpypy.5.5を使用) foo という名前のリストには 1.1 秒かかります (pypy と元の python と同じ)。

両方のアプローチ間で同等のパフォーマンスを得るためにできることはありますか? 私にとっては、record.ignore = True直接インライン化 (またはそのように) することができ、したがってrecord[150] = True. これを実現するために私が見ていないブロックポイントはありますか?

私が変更しているレコードは、実際には (今のところ) CSV ファイルの各行に対して作成されていないことに注意してください。つまり、リストへのアイテムの追加は、反復の前に 1 回だけ行われます。

更新:サンプルコード

--> 名前付きリストの使用

--> 名前付きリストを使用しない

更新 #2 : namedlist.py のコード (namedtuple.py に大きく基づいています)

0 投票する
1 に答える
1093 参照

python - プロパティはPythonのItemgetterでどのように機能しますか?

パイソンを習っていました。公式ライブラリのコレクション モジュールに関しては、次のような NamedTuple のコード スニペットを見つけました。

NamedTuple によって生成されたコードの一部です。生成されたコードを以下に示します。

そして、ここに私の質問があります:

Itemgetter(0) は、引数としてオブジェクトを必要とする関数です。しかし、プロパティは itemgetter に引数を渡しません。では、これはどのように機能するのでしょうか。

ありがとうございました!

これは、プロパティが使用されるコード全体です。

0 投票する
4 に答える
48032 参照

python - namedtuple のサブクラスの属性を設定できません

これまたはこれは多少関連するスレッドのように見えますが、まだ物事を理解していません:)

namedtupleさまざまな方法でオブジェクトを構築できるように、のサブクラスを作成してさまざまな初期化子を提供しようとしています。例えば:

ただし、それは機能しません。

いくつか突っついた後(たとえば、このスレッドを参照)、初期化子の代わりにコンストラクターを使用しようとしました:

オブジェクトを構築しているように見えましたが、その属性を読み取ることができません:

ここでどこが間違っていますか?複数のコンストラクターまたは初期化子を持つサブクラスを作成するにはどうすればよいですか?

0 投票する
1 に答える
165 参照

python - namedtuple リストからタイトルを選択する際の問題

本のタイトルを選択して、そのタイトルのアルファベット順に新しいリストを作成したい

for i in BSI: print(sorted(i.title))