2016-08-02 163 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

相關問題