from math import isfinite
def average_ranks(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or
(type(v) is float and not isfinite(v)) for v in values
):
raise ValueError("values.invalid")
order = sorted(range(len(values)), key=values.__getitem__)
result = [0.0] * len(values)
first = 0
while first < len(order):
end = first + 1
while end < len(order) and values[order[end]] == values[order[first]]:
end += 1
rank = (first + 1 + end) / 2
for i in order[first:end]:
result[i] = rank
first = end
return result適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
プロジェクト
同値、負数、空入力を確認し、真偽値と非有限浮動小数点値を並べ替え前に拒否します。
from math import isfinite
def average_ranks(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or
(type(v) is float and not isfinite(v)) for v in values
):
raise ValueError("values.invalid")
order = sorted(range(len(values)), key=values.__getitem__)
result = [0.0] * len(values)
first = 0
while first < len(order):
end = first + 1
while end < len(order) and values[order[end]] == values[order[first]]:
end += 1
rank = (first + 1 + end) / 2
for i in order[first:end]:
result[i] = rank
first = end
return result同じ値の結果上の位置を明確にする
RankTrellは、データ規則を実装の変更に落とし込む開発者向けのWindows AIコーディング環境です。プロジェクトを開き、同値、結果の欠損、入力順と出力順の関係をアプリでどう扱うか説明します。単に整列したリストではなく業務規則に応える提案になるよう、計算と利用側を調べるよう接続モデルに依頼してください。
ranks.pyは同値の平均順位を扱う作業の題材です。結果が元の位置にどう対応するか説明を依頼し、プロジェクトの動作が違うなら限定的な編集を要求できます。答えが分かる小さな例で具体的に検討します。同順位の方針と、アプリの他の部分へ返す表現の両方をレビューしてください。
実装を確認できる段階になったら、同値、負の値、関数が拒否すべき入力についてプロジェクトの検証を実行します。編集前に合意した例と実際の結果を比較してください。RankTrellはOpenAI互換またはAnthropicのモデルエンドポイントに対応し、必要に応じ認証情報を使います。接続先で提供される制限なしAIモデルをプロバイダーの条件に従って選べます。ツールとコンテキスト上限はモデルとサーバーに依存します。生成された説明への自信より、明確な期待結果が役立ちます。
コードを受け入れる前に決める順位の規則
同値に異なる順位を与えますか?
アプリが必要とする順位規則によります。平均順位を共有するか、別の順位を共有するか、第2キーを使うか示します。実装前に例を求め、選んだ方針を可視化しテスト可能にしてください。
元の入力順との関係を維持する理由は何ですか?
値を提供したレコードに順位を付ける必要があるかもしれません。その対応を明示的に確認します。正しく整列した列でも、元の位置に戻さなければ別のレコードに結果を割り当ててしまいます。
不正な数値を単に末尾に並べてよいですか?
指定した方針で利用側も理解している場合だけです。それ以外は拒否か別の明示的な表現を要求します。実行時の比較動作にアプリ規則を決めさせず、数値検証と順位コードを一緒に調べてください。
大きなデータセットなしでリファクタリングをレビューできますか?
同値、異なる値、空入力を含む手計算可能な少数の例から始めます。必要に応じ代表的なプロジェクトデータを実行します。小さな例なら、大規模な検証で量が増える前に方針の違いを特定しやすくなります。
RankTrell · 更新日 2026-10-25