0

アイテムのセットは {0,1,2} (長さ 3 のリストのインデックス) であり、これらのうち 2 つが与えられた場合、3 つ目を知る必要があります。今私は持っています:

def missingint(i,j):
    return list(set([0,1,2]) - set([i,j]))[0]

これは非常に手の込んだようです。を呼び出すことができるように、整数が必要mylist[k]です。

これを行う簡単な方法はありますか?

4

2 に答える 2

1

実際、[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

于 2013-08-08T18:19:32.627 に答える