0

まず第一に、私の問題を見ていただきありがとうございます。私が解決しなければならない問題に対して私が考えている解決策を単に説明するのではなく、代わりの解決策のアイデアを提案できるようにするためにも、問題の概要を説明するのが最善だと思います. この解決策を達成するためのより良い方法がある可能性が高いです。

私が持っている問題:

関連するスコアランクとその他の関連する値を持つ名前のリストを生成します。これらのリストは毎日生成されますが、一部の名前を削除する必要があるため、日が進むにつれて変更する必要があります。現在、これらの名前のリストは、次のデータ型を次の形式で含む Excel ベースのシートで作成されています。

(Unique List Title)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)

(Unique List Title)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter)

例えば;

Mrs Dodgsons class
Rosie,1,123.8,5,Lincoln University
James,2,122.6,7,Lincoln University
Chris,3,120.4,12,Lincoln University
Douglas,4,120.2,18,Lincoln University

Dr Clements class
Hannah,1,126.9,2.56,Durham University
Gill,2,124.54,6.89,Durham University
Jack,3,122.04,15.62,Durham University
Jamie,4,121.09,20.91,Durham University
Douglas,4,120.2,18,Durham University

今、私が持っているのは、上記のExcel生成リストから削除する必要があるユーザーとそれに関連する「一意でないフィルター」の別のリストです(この小さなプロジェクトの最終製品は、変更されたExcelドキュメントを再保存しないことを心配しないでください) 、このリストは 2 分ごとに更新される Web スクレイパーによって生成されます。この問題に対する実行可能な解決策として私が現在認識している方法は、CSV 内の各リストを SET として保存するコードを使用することです (これが可能な場合)。次に、一意の名前/一意でないフィルタの組み合わせを見つけると、次のようになります。それらが発生する SET/S からそれらを削除します。

たとえば、Douglas,Durham University がこのリストに返された場合、定義された 2 つのセットの 2 番目では、Douglas が削除されたことがわかります。一意のユーザー名が 2 つのセットに表示される場合、そのうちの 1 つは、関連する大学とともに削除されるユーザーのリストに常に表示されます (そのため、ユーザーを削除するセットを特定できます)。ただし、注意してください。削除されるユーザーは、一度に 2 つのセットで表示されるとは限りません。たとえば、"Rosie,Lincoln University" は、削除されるユーザーのリストに簡単に表示される可能性があります。

以前、非常によく似た問題を python フォーラムに投稿しましたが、質問の仕方にいくつかの間違いがあり、達成したかったことは、古いスレッドで問題を混乱させるのではなく、新しいスレッドを開始しました。ここ。古いスレッドでは、この問題についていくつかの一般的な質問がありましたが、ここでいくつかの説明を提供するために回答します。

Q1 つまり、最初のリストは 1 日に 1 回しか生成されず、その日以降、破棄、保管、交換などの処理が行われます。

A1 私の直感では、debuggin ログの場合のみ、単純な .txt .csv などの形式でフォルダーに保存する必要があります。

Q2 2 分ごとに最初のリストを変更する必要がある、変更されたリストに何が起こるか、誰がそれについて知る必要があるか、あるメモリ状態で保存されているか、変更されているかなど。

A2 このコードの最終的な目的は、ユーザー統計を含む RSS を生成することです。これらの統計には、(ランク) と (計算された数値) が含まれます。ランクは、ユーザーが削除された結果としてランクがどのように変化するかについては一目瞭然です。ただし、(計算された数値) は、各リストの (スコア) の合計と、そのリスト内のユーザー数を使用する方程式から導出されます。したがって、元の質問に答えるには、リストを何らかの方法で保存する必要があります。

Q3 クラスごとに固有の名前、またはデータ全体で固有の名前はありますか?

A3 名前はデータ全体で一意です。つまり、ユーザー名 Douglas は常に Douglas を参照します。ユーザーが複数のクラスに表示される場合、削除されるユーザーのリストに常に表示されます。

Q4 名前が一意である場合、同じクラスで 2 人が同じ名前を持っているとどうなるでしょうか。

A4 この例では、同じクラスの複数のユーザーが同じ名前を持つ可能性があるように見えますが、実際にはありえません。

スタック オーバーフローに対する私の質問は次のとおりです。

  1. 一意に名前が付けられた複数の SET (1 日あたり最大 60 個) の生成に関して実行可能な提案された方法論です。
  2. 同じ結果を達成するためのより良い方法はありますか?

ヘルプやコメントをいただければ幸いです

よろしくAEA

4

1 に答える 1