2016-07-31 87 views
1

我有兩個數組array1和array2。據我所知,在數組的第一個元素是0數組和索引

array1 = [a, b, c, d,....z] 
array2 = [1, 2, 3, 4,.....26] 

所以,如果我說:

array1[0] = a 

,但是,我想:

array1[1] = a 
array[2] = b 
array[26] = z 

我是新來的Python 2.7(第三天的學習)並學習數組和索引,所以這讓我想起了。這可能嗎?我嘗試使用循環,如:

for i in range(26) 
    i = array2 # barely started learning loops so parden me if this makes me look like I do not know what I am doing 

我也知道,我可以只分配變量,如下所示。這佔用了很多空間!

array2[0] = a 

我相信,一旦我使用Python進步多了,我會想出解決辦法,但在此期間,我想它不會傷害要求。

+0

爲什麼你需要索引'1'而不是'0'的'a'? –

回答

0

如果你想獲取a1被要求使用該轉換位置封閉:

def fetch_with_shift(seq, shift): 
    def fetch(x): 
     return seq[x - shift] 
    return fetch 

使用這樣的:

my_fetch = fetch_with_offset(s, 1) 
my_fetch(1) # 'a' 

注:還有已經是一個字符串對於string模塊:

from string import lowercase 
s = lowercase # "abc...z" 
+0

我將更多地關注獲取細節。如果這對數組並不那麼簡單,比如讓array1保持不變,但改變array2 = [123,3453,5576 ....]。這可以用於array1 [123] = a嗎? –

+0

你必須解釋你正在解決什麼問題。要在列表中要求嵌入的偏移量,這是非常不太複雜的。 –

+0

好的。感謝您的幫助。我只是想着不同的場景,我使用另一個數組作爲索引值(如果這是有意義的),而不是傳統的1 = 0,2 = 1,3 = 2等等。批判性地思考我目前正在閱讀的概念。 –

0

您可以通過將None值連接到前面來移位數組。

array1 = ["a", "b", ... "z"] 
new_array = [None] + array1 

然後,array1[1]a,並且array1[2]b