2016-07-31 88 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