【问题标题】:Arrays and array indexing数组和数组索引
【发布时间】:2016-12-05 09:37:54
【问题描述】:

我有两个数组,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 方面取得了更多进展,我会弄清楚这一点,但与此同时,我认为问一下也无妨。

【问题讨论】:

  • 为什么在索引1 上需要a 而不是0

标签: arrays python-2.7 indexing


【解决方案1】:

如果您想在1 被要求使用转换位置的闭包时获取a

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"

【讨论】:

  • 我将更详细地了解 fetch。如果这对数组不是那么简单,比如保持array1 不变,但是改变array2 = [123, 3453, 5576....]。这适用于 array1[123] = a 吗?
  • 你必须解释你正在解决什么问题。需要在列表中嵌入偏移量的复杂性极低。
  • 好的。谢谢您的帮助。我只是在考虑不同的场景,我使用另一个数组作为索引值(如果这有意义的话)而不是传统的 1 = 0、2 = 1、3 = 2 等。没有特别解决任何问题,但只是批判性地思考我目前正在阅读的概念。
  • @Caroline.py 这是不常见的,它不会打扰你。坚持已知的标准(从 0 开始就是其中之一),您不太可能在快速解决之前遇到此类问题。
  • @ReutSharabani 设置班次值,这太过分了,尤其是对于初学者。
【解决方案2】:

您可以通过将None 值连接到前面来移动数组。

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

那么,array1[1] 将是 aarray1[2] 将是 b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多