私は値のリストを持っていて、数字を入力します。この関数は、値が数値に加算されるリスト内のインデックスを返す必要があります。問題は、リストに重複した数字が含まれていて、返されたインデックスが同じであってはならないことです。ここに私が持っているが、ソリューションはきれいに見えません。より良い方法がありますか?値が指定された数値に加算されるリストのインデックスを取得する
finalList = []
def getIndices(number):
values = [10,20,20,50,100,200,200,500,1000,2000,2000,5000]
for i in range(len(values)):
if values[i] == number:
if i not in finalList:
finalList.append(i)
else:
finalList.append(i-1)
return values
elif values[i] < number:
continue
else:
number = number - values[i-1]
if i-1 not in finalList:
finalList.append(i-1)
else:
finalList.append(i-2)
if number <= 0:
break
return getIndices(number)
result = getIndices(450)
print(result)
出力
[6, 5, 3]
私はその後、私は私が望むものではありませんどの[6, 6, 3]
になるだろう追加する前にリストをチェックdidntの場合。
はdupesを削除するには、 'set'最初にリストをキャスト? – Bahrom
@BAHはインデックス番号を変更しませんか? – Adib
@Adib、ああ、そうです。その後、すべてのダプを「None」か何かを最初に置き換えてください。 – Bahrom