アイテムのセットは {0,1,2} (長さ 3 のリストのインデックス) であり、これらのうち 2 つが与えられた場合、3 つ目を知る必要があります。今私は持っています:
def missingint(i,j):
return list(set([0,1,2]) - set([i,j]))[0]
これは非常に手の込んだようです。を呼び出すことができるように、整数が必要mylist[k]
です。
これを行う簡単な方法はありますか?
実際、[0,1,2] セットの解決策を探している場合は、次のように簡単に使用できます。
def missingint(i,j):
return 3-i-j
それが機能することを確認するのは簡単です(そして明らかに-非常にシンプルで効率的です)
missingint(0,1) == 2
missingint(1,0) == 2
missingint(0,2) == 1
missingint(2,0) == 1
missingint(1,2) == 0
missingint(2,1) == 0
私の知る限り、Pythonにはより簡単な解決策はありません
一般に、欠落している値を1 つだけ見つけたい場合は、定義済みのセットでも機能します。
def missingint(whole_list , other_values):
return sum( whole_list ) - sum( other_values )
たとえば、 [0,3,13,24] セットの場合、宣言できます
def missingint(i,j,k):
return 40-i-j-k
等