1

セット、ウェイト、および整数の望ましいウェイトがあります。目的の重量に最も近いが、それより大きくないリスト内の要素を削除し、それを actual_weight に関連付ける必要があります。これまでの私のコードは次のようになります。

desired_weight = weights[0]
for i in weights:
 for x in weights:
    if x>i:
        if desired_weight <= x:
            actual_weight = desired_weight
            weights.remove()
4

3 に答える 3

2

あなたが何を求めているかを理解していると仮定すると、

actual_weight = max([x for x in weights if x <= desired_weight])
于 2013-07-19T17:25:05.327 に答える
0

これを試すことができます:

desired_weight = weights[0]
diff = inf
actual_weight = 0
for x in weights:
  if x < desired_weight and (x-desired_weight) < diff:
    diff = x - desired_weight
    actual_weight = x

weights.remove(actual_weight)
于 2013-07-19T17:28:27.567 に答える