最良の回答はすでに選択されていることは承知していますが、教育目的のために、私の回答も検討してください。
タイプミスがないことを願っています:
def some_name(list_a, list_b):
if len(list_a) != len(list_b):
raise Exception("Too bad")
result_list = []
for result in (list_a[i] + list_b[i] for i in range(len(list_a))):
if len(result_list) >= 20:
if result_list[0] > result:
continue
result_list = result_list[1:]
result_list.append(result)
result_list.sort()
そして、いくつかのリファクタリングの後-それはほとんどのことheapq.nlargest
を行います(もちろん、ここでは結果を自分でソートしておく必要があります):
def some_name(list_a, list_b):
if len(list_a) != len(list_b):
raise Exception("Too bad")
result_list = []
for result in (list_a[i] + list_b[i] for i in range(len(list_a))):
result_list.append(result)
result_list.sort()
result_list = result_list[-20:]