2
Iは、これらの二つの機能を持っている:Pythonの配列エレメント比較
def comparison(a, b):
return [-1, 0, 1].index(cmp(b, a))
def base_3(seq):
return [comparison(a, b) for a, b in itertools.combinations(seq, 2)]
機能の比較がこれに基づいて比較数を返す:
- 0> B
- 1場合= bの場合
- 2の場合<b
関数base_3は、結合されたすべての要素の比較を返します。例えば
:可能
x = [0, 1, 2]
y = [1, 2, 0]
z = [0, 1, 0]
>>> base_3(x)
[2, 2, 2]
>>> base_3(y)
[2, 0, 0]
>>> base_3(z)
[2, 1, 0]
私は、与えられたbase_3からの配列を返す関数が必要:
>>> base_3_to_seq([2, 2, 2])
[0, 1, 2]
>>> base_3_to_seq([2, 1, 0])
[0, 1, 0]
>>> base_3_to_seq([0, 2, 1])
"Impossible"
は、どのように私はこの機能base_3_to_seqを書き込むことができますか?
元のコードの観測: '[-1、0、1] .index(cmp(b、a))'は 'cmp(b、a)+ 1'と等価です。 –