アプリをダウンロード
フォルダーを選び、編集前に関連ファイルを読むようアシスタントに依頼します。作業の目的と変更範囲を明確にしてください。
最大1000個の有限数値に元の位置を保って1始まりの平均ランクを割り当てます。 同値、負数、空入力を確認し、真偽値と非有限浮動小数点値を並べ替え前に拒否します。
フォルダーを選び、編集前に関連ファイルを読むようアシスタントに依頼します。作業の目的と変更範囲を明確にしてください。
対応するエンドポイントを選択します。利用できるツールや回答品質は、設定したモデルとサーバーに依存します。
変更内容とコマンド出力を確認します。結果を採用する前にプロジェクトの検証を実行してください。生成コードが自動的にテスト済みになるわけではありません。
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
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適用前に確認. 変更内容とコマンド出力を確認します。結果を採用する前にプロジェクトの検証を実行してください。生成コードが自動的にテスト済みになるわけではありません。