2017-08-28 126 views
0

轉換爲二進制矢量我怎麼可以從:蟒蛇,從整數

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,1,1,0]'......但是,我猜他們可能會來從不同的來源或不同的格式?我建議閱讀並確保你沒有陷入[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