2017-08-28 21 views
0

からバイナリベクトルに変換するIから作ることができる方法:のpython、整数

a1=2 
a2=3 
b1=1 
b2=4 

このようなバイナリーベクター:

 0,1,2,3,4 
a = [0,0,1,1,0] 
b = [0,1,0,0,1] 

私は、ここでの整数は私のベクトルでインデックスを定義することを意味'1'にする必要があります。これを行う最速の方法はなんですか?

+1

最速の方法は、あなたがすべてのそれらの変数を入力している場合は、 '....しかし、私は彼らはおそらく来ている推測している[0、0、0、1、1]を'と入力することであろう別のソースから、または異なる形式で私は読んで、あなたが[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)に落ちていないことを確認することをお勧めします。 –

答えて

2

どのように単純にそうような指標としてa1a2の使用に関する:

a = [0] * 5 
a[a1] = 1 
a[a2] = 1 
0

ご例えば、それはあなたがこのような何かを行うことができ

a = [0] * 5 
b = [0] * 5 
a1 = 2 
a2 = 3 
b1 = 1 
b2 = 4 

a[a1] = 1 
a[a2] = 1 
b[b1] = 1 
b[b2] = 1 
0

だろう。この方法では、必要以上にハードコーディングすることなく、あらゆる量のインデックスに対して機能することができます。

oneIndexesA = [a1,a2] 
oneIndexesB = [b1,b2] 

a = [0] * (max(oneIndexesA) + 1) 
for x in oneIndexesA: 
    a[x] = 1 

b = [0] * (max(oneIndexesB) + 1) 
for x in oneIndexesB: 
    b[x] = 1