2017-08-28 123 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