advanced
レガシーコードのパフォーマンス最適化
非効率なPythonコードを分析し、計算量を削減するための高度なリファクタリングを行います。
📝 プロンプトの内容
以下のPython関数は、大量のデータセットを処理する際にパフォーマンスのボトルネックとなっています。このコードを分析し、時間計算量と空間計算量の両面から問題点を指摘してください。その後、内包表記、ジェネレータ、または適切な標準ライブラリ(itertoolsやfunctoolsなど)を活用して、処理速度を大幅に向上させるリファクタリング版コードを作成してください。また、リファクタリング前後のパフォーマンス差がどのような理由で生じるか、アルゴリズム的な観点から解説してください。
# 元のコード
def process_data(data_list):
result = []
for i in range(len(data_list)):
for j in range(len(data_list)):
if data_list[i] == data_list[j] and i != j:
if data_list[i] not in result:
result.append(data_list[i])
return sorted(result)