ホームページ  >  に質問  >  本文

Python で 1:n:1 データ構造を実装するにはどうすればよいですか?

まず、大量のデータがあり、3 つのユニットに分割されます:

リーリー

たとえば、現在そのようなデータが 100 個あります。どうやって対処すればいいのでしょうか?
ステップ 1
私のアイデアは、辞書を通じて 1:n:1 を構築することです。
しかし、現状は。タイプがキーの場合、同じタイプがあった場合はどうすればよいですか?辞書キーが一意であるためです。

2 番目のステップでは、最初の値から 2 番目の値を取得します。最初の値が分からない場合、最初の値から 2 番目の値を取得するにはどうすればよいですか?

###ありがとう! ~


表現がわかりにくいかもしれないので、1:n:1の例を挙げます

たとえば、次のようなデータが2つあります
リーリー

それでは、次のようなものを作成したいと思います:

リーリー

これが私が望む結果です。

つまり。 1: n: 1 は
Type: 最初の値: 2 番目の値を意味します実行可能な解決策があるかどうかわかりません

怪我咯怪我咯2712日前718

全員に返信(3)返信します

  • 为情所困

    为情所困2017-05-18 10:57:26

    最初の値: 最初の値が同じ型で一意である場合は、次の構造を試すことができます:

    リーリー

    上記は、デフォルト値の作成は一意である必要があることを意味します字典的字典mapping, 然后用类型第一个值分别作为索引的key, 我个人觉得, 在类型第一个值的共同约束下, 找到的第二个值、一意でない場合は、上書きするかリスト形式で存在するかを検討する必要があります

    2 番目:
    上で述べたデータ構造を使用する場合、最初の値が分からない場合は、mapping[value_type] をたどるだけで、その値が必要なものかどうかを判断できます

    返事
    0
  • 迷茫

    迷茫2017-05-18 10:57:26

    1:n:1 とはどういう意味ですか?マッピング関係? しかし、これは重要ではありません。各データを 3 つのタプル (type、val1、val2) として書き込み、各データを配列 [];
    に保存する方法があります。配列を作成するときは、typeDict = {type: [arrIdx]}、val1Dict={val1:[arrIdx]}、val2Dict={val2:[arrIdx]}の3つのdictを作成します
    typeを使用してデータを検索したい場合は、 type に対応するすべてのレコードの場所を検索の typeDict を使用するだけです。
    同様に、val1とval2も同じです。
    typeA、val1=n を見つけたい場合は、typeDict、val1Dict から見つかった結果セットを交差するだけで済みます。

    返事
    0
  • 某草草

    某草草2017-05-18 10:57:26

    データ量が多い場合はmysqlやpandasなどのデータ処理に特化したデータベースを使った方が効率が良さそうです。 Pandas には専用の to_dict 関数もあります。

    返事
    0
  • キャンセル返事