2016-08-02 85 views
0

我使用Python 2.7,并在几天前开始学习Python。我仍然试图探索Python如何索引数组。数组从零开始,而不是一个。我正在练习操纵数组,并可以使用一些帮助。了解数组:索引从0开始

我有2个阵列 - AB - 我想要得到B中的值与A中的值平行。

下面是我插科打诨的代码,以帮助我得到精通阵列:

A = [2, 8, 29, 34, 54, 61, 73, 89, 97, 101] 

B = [201, 309, 454, 540, 602, 750, 889, 973, 1003, 1120] 


B[2] = 454 

# B[2] = 201 this is what I want 

B[8] = 1003 

#B[8] = 309 this is what I want 

两个数组的长度相同,但你可以看到,我想在分度工作。如果我只是做B [A],那么它是一个超出边界索引的错误代码。我试着使用:

A.searchsorted(B) #but still get an error. 

我不知道如果我作出任何意义,因为我知道我想要在我的头上,但就是无法得到正确的写法出来,使其更容易。希望上面的例子显示我想要的东西。我在网站上发现的唯一的事情是searchsorted(也许我错误地使用了它)。这个方法在前面的问题中引起了我的注意,我进一步研究了它,但仍然无法找到我正在寻找的东西。

+0

您的问题没有意义。 “在B中的值与A中的值平行”是什么意思? 201不是B [2],201是B [0]。 A [0]是2. B [A [0]]也是454,因为B [A [0]] == B [2] == 454. – alzee

+0

即使B [0] = 201.当我的意思是平行时,我的意思是不得不使用相似长度的数组。比方说,我们并排放在一起。我想要一个数组的值对应于另一个数组。 2和201分别是A [0]和B [0]。我想通过使用A中的第一个值来获得B中的第一个值,因此B [2] = 201,而不是B [0]。我不确定这是否可行,但这是否更有意义? –

+0

通过使用A *中的第一个值,您无法获得B中的第一个值。 A中的第一个值是* 2 *,您可以将它用作语法为'B [A [0]]'的索引,但这不会给出“B中的第一个值”,而是B中的第3个值,因为A [0] == 2,并且数组索引从0开始。**编辑:简单地说,B中的第一个值是B [0],句点。在你的例子中就是201. ** – alzee

回答

0

这听起来像你试图从一个列表中找到一个值的索引,然后从该索引处的另一个列表中返回值。

A = [2, 8, 29, 34, 54, 61, 73, 89, 97, 101] 
B = [201, 309, 454, 540, 602, 750, 889, 973, 1003, 1120] 
print(B[A.index(2)]) 
print(B[A.index(8)]) 

产地:

201 
309 

注意:这将导致运行时错误,如果该值没有在第一列表中存在:

print(B[A.index(42)]) 

会爆炸,摧毁一切方圆5公里。请参阅https://ideone.com/dfVci9